我想在Azure SQL数据库中批量插入大小不超过50MB的.csv文件,可能不会超过10分钟左右。
但是,云的批量插入为not available。正如另一个thread所指出的,BCP是一个可行的解决方案,但它需要将数据批量插入本地数据库。但是,在PaaS基础架构中,这不是一个选项,因为在操作系统级别无法控制,并且无法创建和管理数据库。
目前,131 KB的.csv需要超过10分钟才能使用标准S3:100 DTU,250 GB Azure SQL数据库原始上传。如何加快上传至少一个数量级?
import pandas as pd
import sqlalchemy
table = pd.Dataframe(<your_data_here>)
sql_driver = <driver>
sql_server = <server>
sql_user = <user>
sql_pass = <password>
sql_db = <database_name>
sql_conn = sqlalchemy.create_engine(
'mssql+pyodbc://'+sql_user+':'+sql_pass+'@'+sql_server+'/'+sql_db+'?driver='+sql_driver)
table.to_sql('table_name', con=sql_conn)
答案 0 :(得分:3)
您可以使用以下语法从BLOB存储帐户批量插入:
BULK INSERT Test
FROM 'source/data/Test.csv'
WITH ( DATA_SOURCE = 'MyAzureBlobStorage',
FORMAT='CSV', CODEPAGE = 65001,
FIRSTROW=2,
TABLOCK);
希望这有帮助。