使用sql批量插入将大型csv文件保存到Azure数据库中的最快方法是什么?

问题描述 投票:0回答:1

我正在尝试从FTP下载大文件并将其存储在某些Azure存储器中,然后在Azure上的sql中运行BulkInsert并将数据保存到表中

我有一个FTP服务器,我从中读取数据作为CSV文件。其中一些文件非常重,约为1.5GB甚至更多。到目前为止,我一直在将这些文件下载到内存中,然后在蔚蓝上使用C#BulkCopy将它们保存到数据库中,但是现在我收到此错误OutOfMemoryException,这似乎是由于文件大小所致。

这就是为什么我正在考虑直接在azure上从SQL使用BulkInsert,但随后SQL实例需要访问文件下载到的存储,当然它不能是我的本地计算机,因为好像我无法运行BulkInsert源文件位于我的本地存储上时,在Azure上的SQL Server上执行命令。

是否有任何方法可以将文件下载并保存到SQL可以访问的Azure存储中,然后执行BulkInsert?

c# sql-server azure bigdata bulkinsert
1个回答
0
投票

您可以使用数据工厂将数据从FTP复制到Azure SQL。

数据工厂在传输大数据方面具有更好的性能:enter image description here

数据工厂支持将FTP作为连接器。

enter image description here

请参考这些教程:

  1. Copy data from FTP server by using Azure Data Factory
  2. Copy data to or from Azure SQL Database by using Azure Data Factory
  3. Copy data from Azure Blob storage to a SQL database by using the Copy Data tool

我如何直接从FTP将文件下载到Azure上的该存储中?

您使用创建管道,使用FTP作为源,使用存储作为链接服务器。

您还可以直接从FTP到Azure SQL处理大文件。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.