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')