【问题标题】:Loading CSV from Azure Data Lake (Gen 2) to Azure SQL Database将 CSV 从 Azure Data Lake(第 2 代)加载到 Azure SQL 数据库
【发布时间】:2019-05-16 02:11:01
【问题描述】:

我有一个包含多个容器的 Azure Data Lake Storage(第 2 代)帐户。我想将 salesorderdetail.csv 文件从 Sales 容器导入 Azure SQL 数据库。

我已使用 Azure 数据工厂成功构建了相同的流程,但我现在想尝试仅通过标准 T-SQL 语句来使其正常工作。

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XxxxxxXX#'

CREATE DATABASE SCOPED CREDENTIAL MK_Cred_Data_Load 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', 
SECRET = 'sv=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%3D'; 

CREATE EXTERNAL DATA SOURCE MK_ADLS_Sales
WITH (TYPE = BLOB_STORAGE, 
LOCATION = 'https://mkpracticestorageaccount.blob.core.windows.net/sales', 
CREDENTIAL = MK_Cred_Data_Load);

上面的代码似乎可以正常工作,因为我可以看到在 SSMS 的对象资源管理器窗口中创建的外部数据源:

以下代码应将 salesorderdetail.csv 文件中的数据插入[lnd].salesorderdetail 表:

TRUNCATE TABLE [lnd].[SalesOrderDetail]

BULK INSERT [lnd].[SalesOrderDetail]
FROM 'salesorderdetail.csv'
WITH (DATA_SOURCE = 'MK_ADLS_Sales', FORMAT = 'CSV', FIRSTROW=2, 
FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')

相反,它会输出以下错误消息:

未找到引用的外部数据源“MK_ADLS_Sales”。

我也尝试了以下方法,但出现与上面相同的错误消息。

SELECT * 
FROM OPENROWSET(BULK  'salesorderdetail.csv',
                DATA_SOURCE = 'MK_ADLS_Sales',
                SINGLE_CLOB) AS DataFile;

有人可以帮忙吗?谢谢!

(使用SSMS v17.9,Azure SQL数据库标准版,Windows 10)

【问题讨论】:

  • ADLS Gen 2 当前不支持 Blob 存储 API。所以目前你不能直接从 SQL 数据库连接。
  • 只使用数据工厂。
  • @DavidBrowne-Microsoft - 我不知道,谢谢。您是否知道一旦 ADLS Gen 2 已通过预览版进入 GA,是否有计划在 Blob Support API 中包含对它的支持?
  • @wBob - 我已经在 ADF 中创建了相同的进程,但我希望找到一种使用 T-SQL 的方法。就我个人而言,我发现 T-SQL 语句更易于维护/修改/共享。
  • 是的。与 blob 存储 API 的互操作性是 ADLS Gen 2 已宣布的重要功能。

标签: tsql azure-sql-database azure-blob-storage azure-data-lake external-data-source


【解决方案1】:

Blob 存储 API 尚不可用于 Azure Data Lake Storage Gen2 帐户。 禁用这些 API 是为了防止由于 Blob 存储 API 尚未与 Azure Data Lake Gen2 API 互操作而可能出现的意外数据访问问题。

来源:https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues

这意味着在 Blob Support API 可用于 ADLS Gen 2 之前,我们不能使用 here 中描述的 T-SQL 方法。

【讨论】:

  • 知道 3 年后是否支持此功能?
猜你喜欢
  • 2022-11-17
  • 2020-11-22
  • 2022-12-01
  • 2021-05-06
  • 2021-06-20
  • 1970-01-01
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多