3

这是我试图在 Azure SQL 数据库中运行的脚本:

CREATE DATABASE SCOPED CREDENTIAL some_cred WITH IDENTITY = user1,   
    SECRET = '<Key of Blob Storage container>';  
CREATE EXTERNAL DATA SOURCE TEST
WITH
(
    TYPE=BLOB_STORAGE,
    LOCATION='wasbs://<containername>@accountname.blob.core.windows.net',
    CREDENTIAL= <somecred>`enter code here`
);

CREATE EXTERNAL TABLE dbo.test
(
val VARCHAR(255)
)
WITH
(
DATA_SOURCE = TEST
)

我收到以下错误:

提供的数据源类型不支持外部表。

我的目标是在 blob 存储中创建外部表,以便 HDInsight 中的 Hive 查询引用相同的 blob。该表需要通过 Azure SQL 进行管理。这个脚本有什么问题?

4

2 回答 2

2

Azure SQL 数据库确实具有加载存储在 Blob 存储中的文件的功能,但它只能通过BULK INSERTOPENROWSET语言功能。请参阅此处了解更多信息。

BULK INSERT dbo.test
FROM 'data/yourFile.txt'
WITH ( DATA_SOURCE = 'YourAzureBlobStorageAccount');

您编写脚本的方式更像是使用 Polybase 的外部表,目前仅在 SQL Server 2016 和 Azure SQL 数据仓库中可用。

于 2017-09-06T12:00:22.367 回答
1

我在想外部表可以用于跨数据库查询(弹性查询)。所以它不能使用外部数据源,即BLOB_STORAGE

于 2017-09-06T09:43:25.767 回答