如何从ADLS批量加载Azure SQLDB



我知道在ADF中,复制活动可以用于将数据从ADLS加载到Azure SQL DB。是否有散装的可能。例如,ADLS->Synapse必须选择PolyBase进行批量装载。

是否有任何有效的方法将大量记录从ADLS加载到Azure SQL DB。

谢谢Madhan

您可以使用BULK INSERTOPENROWSET将数据从blob存储区获取到Azure SQL数据库中。OPENROWSET:的一个简单例子

SELECT * 
FROM OPENROWSET (
BULK 'someFolder/somecsv.csv',
DATA_SOURCE = 'yourDataSource',
FORMAT = 'CSV',
FORMATFILE = 'yourFormatFile.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureInvoices'
) AS yourFile;

BULK INSERT:的一个简单例子

BULK INSERT yourTable
FROM 'someFolder/somecsv.csv'
WITH ( 
DATA_SOURCE = 'yourDataSource',
FORMAT = 'CSV'
);

首先要进行一些设置,即必须使用CREATE EXTERNAL DATA SOURCE语句,但我发现这是在Azure SQL DB中获取数据的一种非常有效的方法,而无需设置ADF管道。它特别适合临时负载。

本文更详细地介绍了通过以下步骤:

https://learn.microsoft.com/en-us/sql/relational-databases/import-export/examples-of-bulk-access-to-data-in-azure-blob-storage?view=sql-服务器-ver15

数据工厂在大数据传输方面具有良好的性能,参考:使用ADF可以实现复制性能和可扩展性。您可以遵循此文档来提高ADLS中大量记录的复制性能。我认为它可能比BULK INSERT更好。

我们不能在数据工厂中直接使用BULK INSERT(Transact-SQL(。但我们可以使用ADLS到Azure SQL数据库的批量复制。Data Factory为我们提供了教程和示例。

参考此处:从文件到数据库的批量复制:

  • 本文介绍了一个可用于复制的解决方案模板从Azure data Lake Storage Gen2到Azure Synapse的批量数据Analytics/Azure SQL数据库

希望有帮助。

最新更新