这是我尝试在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进行管理。这个脚本有什么问题?
答案 0 :(得分:2)
Azure SQL数据库确实具有加载存储在Blob存储中的文件的功能,但它只能通过BULK INSERT
和OPENROWSET
语言功能加载。有关详细信息,请参阅here。
BULK INSERT dbo.test
FROM 'data/yourFile.txt'
WITH ( DATA_SOURCE = 'YourAzureBlobStorageAccount');
您编写脚本的方式更像是使用Polybase的外部表,此表仅在SQL Server 2016和Azure SQL数据仓库中可用。
答案 1 :(得分:1)
我认为外部表可以用于跨数据库查询(弹性查询)。所以它无法使用 BLOB_STORAGE
的外部数据源