我一直在寻找在SQL数据库中创建外部数据源的解决方案。
CREATE DATABASE SCOPED CREDENTIAL ADLSCredential
WITH
IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '7Re4z84oUuCeMKjWzMmVNTXcsj4YH7okVl********='
;
CREATE EXTERNAL DATA SOURCE AzureDataLakeStorage
WITH (
TYPE = HADOOP,
LOCATION = 'adl://<datalakeaccountname>.azuredatalakestore.net',
CREDENTIAL = ADLSCredential
);
执行此请求时,结果始终为:
无法执行查询。错误:“ HADOOP”附近的语法不正确。
经过研究,我发现以下信息:
您使用的是Azure SQL DB,而不是Azure SQL数据仓库(DW),用于根据ADLS或类似类型的数据源设置外部表。
是否可以通过Azure Data Lake Store上托管的数据在Azure SQL数据库上设置外部表?
该主题的发布日期为2018年9月12日,上述问题没有答案。
你能帮我吗?
最诚挚的问候,
特里斯坦。
答案 0 :(得分:1)
您只能在Azure SQL 数据仓库中设置外部连接。
documentation说它适用于Azure SQL数据库,但这具有误导性,提供此功能的引擎是Polybase,并且仅在SQL DW SQL Server 2016+(IaaS或本地)中可用。
如果您阅读文档中的页面,则会发现一条注释:
PolyBase仅在SQL Server 2016(或更高版本),Azure SQL上受支持 数据仓库和并行数据仓库。弹性数据库查询 仅在Azure SQL数据库v12或更高版本上受支持。