2017-09-05 3 views
1

Voici mon script que je suis en train de courir dans Azure Database SQL:Table externe dans le stockage BLOB dans SQL Azure (pas SQL Azure 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 
) 

Je reçois l'erreur suivante:

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

Mon objectif est de créer une table externe dans le stockage BLOB afin que la requête Hive dans HDInsight fasse référence au même BLOB. La table doit être gérée via Azure SQL. Quel est le problème avec ce script?

Répondre

1

Je pense que les tables externes peuvent être utilisées pour Interrogation de base de données croisée (Requêtes élastiques). Donc, il ne pouvait pas en mesure d'utiliser la source de données externe qui est BLOB_STORAGE

1

Azure Database SQL ne possède la fonction de charger des fichiers stockés dans le stockage BLOB mais uniquement via les BULK INSERT et OPENROWSET caractéristiques linguistiques. Voir here pour plus d'informations.

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

La façon dont vous avez scénarisé, il est plus comme une table externe à l'aide Polybase qui est disponible uniquement dans SQL Server 2016 et SQL Azure Data Warehouse à ce moment.