将csv从blob存储并行加载到Azure SQL数据库

时间:2018-12-06 14:58:22

标签: azure azure-sql-database azure-storage azure-data-factory azure-data-factory-2

我有一个很大的csv文件存储在Azure的Blob存储中。 我想尽快将其加载到zure sql数据库中。

我曾尝试在DataFactory集成运行时中运行SSIS,但由于它是一个线程/进程,所以它运行起来很慢。

将Azure中的csv的数据负载并行化到sql数据库的最佳方法是什么?

注意,如果可以,我可以将csv移至其他存储设备(例如datalake)。

1 个答案:

答案 0 :(得分:0)

Azure SQL中最快的方法是使用BULK操作(BULK INSERT或OPENROWSET BULK)。您需要首先创建一个指向包含要导入的CSV的Azure Blob存储的外部数据源,然后可以使用批量操作:

SELECT * FROM OPENROWSET(BULK ...)

完整的解释和示例在这里:

https://medium.com/@mauridb/automatic-import-of-csv-data-using-azure-functions-and-azure-sql-63e1070963cf

该示例描述了如何导入放置在Blob存储中的文件。多个文件将并行导入。

有关如何将数据从Azure Blob存储批量导入到Azure SQL的完整说明,官方文档中有很多示例

https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017#f-importing-data-from-a-file-in-azure-blob-storage

另一个选择是使用Azure Data Factory,其速度与刚才提到的BULK选项一样快,但是它需要创建一个Azure Data Factory管道,这会增加解决方案的复杂性……但是,另一方面无需编写任何代码即可完成操作。