我正在尝试从FTP下载大文件并将其存储在某些Azure存储器中,然后在Azure上的sql中运行BulkInsert并将数据保存到表中
我有一个FTP服务器,我从中读取数据作为CSV文件。其中一些文件非常重,约为1.5GB甚至更多。到目前为止,我一直在将这些文件下载到内存中,然后在蔚蓝上使用C#BulkCopy将它们保存到数据库中,但是现在我收到此错误OutOfMemoryException,这似乎是由于文件大小所致。
这就是为什么我正在考虑直接在azure上从SQL使用BulkInsert,但随后SQL实例需要访问文件下载到的存储,当然它不能是我的本地计算机,因为好像我无法运行BulkInsert源文件位于我的本地存储上时,在Azure上的SQL Server上执行命令。
是否有任何方法可以将文件下载并保存到SQL可以访问的Azure存储中,然后执行BulkInsert?
您可以使用数据工厂将数据从FTP复制到Azure SQL。
数据工厂支持将FTP作为连接器。
请参考这些教程:
我如何直接从FTP将文件下载到Azure上的该存储中?
您使用创建管道,使用FTP作为源,使用存储作为链接服务器。
您还可以直接从FTP到Azure SQL处理大文件。
希望这会有所帮助。