简体   繁体   English

使用 Azure 数据工厂 V2 将 Excel 工作簿的多个工作表并行加载到 SQL 数据库中

[英]Bulk Load Multiple Worksheets of an Excel Workbook parallelly into SQL DB using Azure Data Factory V2

Is there a way to Bulk Load worksheets into SQL tables using ADF V2?有没有办法使用 ADF V2 将工作表批量加载到 SQL 表中?

I was able to load 5 Sheets of data by making 10 Data sets (Excel and SQL Tables) using 2 linked Service (Blob & SQL DB).通过使用 2 个链接服务(Blob 和 SQL DB)制作 10 个数据集(Excel 和 SQL 表),我能够加载 5 张数据。 The performance wasn't good even when all of the data activities were executed in parallel.即使并行执行所有数据活动,性能也不好。

If I add more sheets to load, then performance degrades significantly.如果我添加更多要加载的工作表,则性能会显着降低。 I assume it's because the same excel workbook is consumed and it takes time to open and read considering it's size (50 MB) and becomes a bottleneck.我认为这是因为相同的 excel 工作簿已被消耗,考虑到它的大小(50 MB),打开和阅读它需要时间并成为瓶颈。

SSIS could do it only sequentially using the Foreach loop (depends how dynamically the destination table was set) SSIS 只能使用 Foreach 循环按顺序执行(取决于目标表的动态设置方式)

There must be a better way to load the data rather than creating N*2 number of Data sets (Worksheet Source & Resp SQL Table).必须有更好的方法来加载数据,而不是创建 N*2 个数据集(工作表源和 Resp SQL 表)。

-Thanks -谢谢

As @Mark has posted - "You can click "edit" in the dataset "sheets" property and parameterize that property. Then you can use a pipeline "foreach" to loop through sheet names"正如@Mark 所发布的那样-“您可以在数据集“表格”属性中单击“编辑”并参数化该属性。然后您可以使用管道“foreach”来循环表格名称”

You could do this in two steps:您可以分两步执行此操作:

  • First export the excel spreadsheets to csv files, you could combined these to a single file.首先将 excel 电子表格导出到 csv 文件,您可以将它们组合成一个文件。
  • Then use Bulk Insert to load the data into the database然后使用 Bulk Insert 将数据加载到数据库中

See: https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-ver15请参阅: https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-ver15

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM