![](/img/trans.png)
[英]Azure Purview sees On-Prem SQL Server db and tables, but fails to scan with message: invalid client secret is provided
[英]Handle error "External tables are not supported with the provided data source type" in Azure SQL DB?
根据Microsoft 文档,外部表现在可在 Azure SQL 数据库上使用,以 Blob 存储作为数据源。
我能够按照下面的脚本创建TYPE = BLOB_STORAGE
的主密钥、凭证和数据源,并注意到此版本不支持文件格式(也不确定如何处理)。
所以我尝试创建一个外部表,其中一个字段为VARCHAR(MAX)
。 因此我遇到了这个错误信息:
Mensagem 46525, Nível 16, Estado 31, Linha 32
提供的数据源类型不支持外部表。
这是我一直在使用的脚本:
-- Cria uma chave mestra
CREATE MASTER KEY;
go
-- Cria credencial com a chave do Blob fsarquivo2 (essa é a chave)
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH
IDENTITY = 'user',
SECRET = 'Q/rAy00000000000000000000000003Zo4RsxbIb57i2DoJTtU4JYQl1W5FDBIITapphJDRSv4OtniL3Dg=='
;
-- Aqui vc mostra onde fica a fechadura através da URI
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'wasbs://container0@fsblobstorage.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
create external table luiz
(field varchar(MAX))
with
(
DATA_SOURCE = AzureStorage,
LOCATION = 'container0/terrcad.txt'
)
谁能帮我?
您所做的一切都是正确的,只是您尝试从 Blob 存储中的数据源创建外部表,但这是不可能的。 您需要使用 BULK INSERT 或 OPENROWSET 来访问文件并导入它,而不是创建外部表。
以下是使用 BULK/INSERT 的示例:
BULK INSERT Product
FROM 'container0/terrcad.txt'
WITH ( DATA_SOURCE = 'AzureStorage');
使用批量插入。
SELECT * FROM OPENROWSET(
BULK 'inv-2017-01-19.csv',
DATA_SOURCE = 'AzureStorage',
FORMAT = 'CSV',
FORMATFILE='invoices.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureInvoices'
) AS DataFile;
有关更多信息,请访问这篇文章。
您的代码中有一个小错误会使其工作:当您将数据源的类型定义为HADOOP
存储时,您只能在 blob 存储上创建一个外部表:
-- Aqui vc mostra onde fica a fechadura através da URI
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = HADOOP,
LOCATION = 'wasbs://container0@fsblobstorage.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
看一下 Microsoft 的这个示例: Configure PolyBase to access external data in Azure Blob Storage
看起来 TYPE BLOB_STORAGE
类型只能用于 BULK INSERT 和 OPENROWSET 函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.