2017-09-05 91 views
1

這裏是我的腳本,我想在Azure中的SQL數據庫上運行:在Blob存儲在Azure的SQL(不Azure的SQL DW)外部表

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 
) 

我收到以下錯誤:

External tables are not supported with the provided data source type.

我的目標是在blob存儲中創建外部表,以便HDInsight中的Hive查詢引用相同的blob。該表需要通過Azure SQL進行管理。這個腳本有什麼問題?

回答

1

我在想外部表可以用於跨數據庫查詢(彈性查詢)。所以它可能不能夠使用外部數據源是BLOB_STORAGE

1

Azure的SQL數據庫確實有功能加載存儲在Blob存儲文件,但它只能通過BULK INSERTOPENROWSET語言功能。有關更多信息,請參見here

BULK INSERT dbo.test 
FROM 'data/yourFile.txt' 
WITH (DATA_SOURCE = 'YourAzureBlobStorageAccount'); 

你的腳本更喜歡使用多鹼這是隻有在SQL Server 2016和SQL Azure的數據倉庫,此時可用一個外部表的方式。