我正在Azure SQL DW中创建数据源,以便使用BLOB存储数据创建外部表,但是在创建数据源时出现错误。我是这个Polybase环境的新手,请分享您的想法。
我试图在外部表代码中调用数据源。
外部表
create external table [DBA].[TEST]
(
[type] varchar(3) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
)
with (LOCATION='https://test.blob.core.windows.net/BCP/',
DATA_SOURCE=TEST,
FILE_FORMAT=pipe_header,
REJECT_TYPE=VALUE,
REJECT_VALUE=0
)
我不确定我也需要传递哪个密钥。我需要使用BLOB存储密钥或其他方式。
数据源
CREATE EXTERNAL DATA SOURCE TEST
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://test.blob.core.windows.net/BCP/'
, CREDENTIAL = KEYS
)
;
错误代码
Msg 103010, Level 16, State 1, Line 1
Parse error at line: 3, column: 16: Incorrect syntax near 'BLOB_STORAGE'.
Incorrect syntax near 'BLOB_STORAGE'. Expecting CEDS_HADOOP, CEDS_RDBMS, CEDS_SHARDMAPMANAGER, or CEDS_SHAREDMEMORY"
期望
我需要使用BLOB存储帐户在Azure SQL数据仓库中创建外部表。
答案 0 :(得分:1)
令人困惑的是,TYPE=BLOB_STORAGE
不在PolyBase中使用,仅在Azure SQL数据库的BULK INSERT / OPENROWSET中使用。使用TYPE=HADOOP
,如本演练所示:Load Contoso Retail data to Azure SQL Data
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = HADOOP,
LOCATION = 'wasbs://<blob_container_name>@<azure_storage_account_name>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);