Как выполнить массовую вставку данных в базу данных MSSQL в задании оболочки Python AWS Glue?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как выполнить массовую вставку данных в базу данных MSSQL в задании оболочки Python AWS Glue?

Сообщение Anonymous »

У меня есть большие наборы данных в s3. В своей работе по склеиванию Python я буду извлекать данные из этих файлов в форме фрейма данных pandas, применять необходимые преобразования к фрейму данных, а затем загружать его в базу данных Microsoft SQL с помощью библиотеки PYMSSQL. Окончательный кадр данных содержит в среднем 100–200 тыс. строк и 180 столбцов данных. В настоящее время я использую PYMSSQL для подключения к базе данных. Проблема в том, что выполнение многих классов курсоров требует слишком много времени для загрузки данных. Примерно 20 минут для 100 тысяч строк. Я проверил логи, и загрузка всегда была медленной. скриншот прилагается. Как их загрузить быстрее? Я прилагаю свой код здесь:
file=s3.get_object(Bucket=S3_BUCKET_NAME,Key=each_file)
for chunk in pd.read_csv(file['Body'],sep=",",header=None,low_memory=False,chunksize=100000):
all_data.append(chunk)

data_frame = pd.concat(all_data, axis= 0)
all_data.clear()
cols = data_frame.select_dtypes(object).columns
data_frame[cols] = data_frame[cols].apply(lambda x: x.str.strip())
data_frame.replace(to_replace ='',value =np.nan,inplace=True)
data_frame.fillna(value=np.nan, inplace=True)
data_frame.insert(0,'New-column', 1111)
sql_data_array =data_frame.replace({np.nan:None}).to_numpy()
sql_data_tuple=tuple(map(tuple, sql_data_array))
try:
sql="insert into [db].[schema].[table](column_names)values(%d,%s,%s,%s,%s,%s...)"
db_cursor.executemany(sql,sql_data_tuple)
print("loading completed on {}".format(datetime.datetime.now()))
except Exception as e:
print(e)


Подробнее здесь: https://stackoverflow.com/questions/727 ... -shell-job
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»