繁体   English   中英

在 Azure SQL DB 中处理错误“提供的数据源类型不支持外部表”?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM