2017-09-05 2 views
1

Hier ist mein Skript, das ich in Azure SQL-Datenbank zu laufen versuchen:Externe Tabelle in Blob Storage in Azure SQL (nicht 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 
) 

Ich erhalte die folgende Fehlermeldung:

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

Mein Ziel ist es, eine externe Tabelle im Blob-Speicher zu erstellen, so dass die Hive-Abfrage in HDInsight auf denselben Blob verweist. Die Tabelle muss über Azure SQL verwaltet werden. Was ist falsch an diesem Skript?

Antwort

1

Ich denke, externe Tabellen können für Cross Datenbank Abfrage (Elastic Queries) verwendet werden. So könnte es nicht in der Lage die externe Datenquelle zu verwenden, die BLOB_STORAGE ist

1

Azure SQL-Datenbank die Funktion hat Dateien in Blob Storage gespeichert zu laden, aber es ist nur über die BULK INSERT und OPENROWSET Sprachfunktionen. Weitere Informationen finden Sie unter here.

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

Die Art und Weise Sie scripted haben es mehr wie eine externe Tabelle mit Polybase ist, die nur in SQL Server 2016 und SQL Azure Data Warehouse zu diesem Zeitpunkt zur Verfügung steht.

Verwandte Themen