December 29, 2023
Как при помощи Python читать таблицу из MS SQL с помощью chunksize
Как при помощи Python читать таблицу из MS SQL состоящую из 20 миллионов строк данных не полностью за один запрос, а с помощью chunksize и писать output в один файл parquet.
Для выполнения этой задачи вы можете использовать библиотеки pandas
для работы с данными и pyodbc
для подключения к базе данных MS SQL. Вот пример кода, который демонстрирует, как это можно сделать:
Установите необходимые библиотеки:
pip install pandas pyodbc pyarrow
Импортируйте библиотеки в вашем скрипте:
import pandas as pd import pyodbc
Установите параметры подключения к вашей базе данных MS SQL:
server = 'your_server_name' database = 'your_database_name' username = 'your_username' password = 'your_password'
table_name = 'your_table_name' chunksize = 10000 # Размер блока (chunk) для пошагового чтения данных
Создайте подключение к базе данных и используйте pd.read_sql
с параметром chunksize
для пошагового чтения данных:
connection_string = f'DRIVER={{SQL Server}};SERVER={server};DATABASE={database};UID={username};PWD={password}' conn = pyodbc.connect(connection_string) query = f'SELECT * FROM {table_name}' chunks = pd.read_sql(query, conn, chunksize=chunksize)
Используйте цикл для пошаговой обработки и записи данных в файл parquet:
output_filename = 'output.parquet' for i, chunk in enumerate(chunks): if i == 0: chunk.to_parquet(output_filename, index=False, engine='pyarrow') else: chunk.to_parquet(output_filename, index=False, engine='pyarrow', mode='a')