Загрузка CSV из озера данных Azure (Gen 2) в базу данных SQL Azure - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть учетная запись хранилища озера данных Azure (Gen 2) с несколькими контейнерами.Я хотел бы импортировать файл salesorderdetail.csv из контейнера Sales в базу данных SQL Azure.

Я успешно построил тот же процесс с помощью фабрики данных Azure, но теперь я хочу попробовать и заставить его работать только с помощью стандартных операторов T-SQL.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XxxxxxXX#'

CREATE DATABASE SCOPED CREDENTIAL MK_Cred_Data_Load 
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', 
SECRET = 'sv=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%3D'; 

CREATE EXTERNAL DATA SOURCE MK_ADLS_Sales
WITH (TYPE = BLOB_STORAGE, 
LOCATION = 'https://mkpracticestorageaccount.blob.core.windows.net/sales', 
CREDENTIAL = MK_Cred_Data_Load);

Приведенный выше код работает правильно, поскольку я вижу внешний источник данных, созданный в окне обозревателя объектов в SSMS:

enter image description here

Следующий код должен вставить данные из файла salesorderdetail.csv в таблицу [lnd].salesorderdetail:

TRUNCATE TABLE [lnd].[SalesOrderDetail]

BULK INSERT [lnd].[SalesOrderDetail]
FROM 'salesorderdetail.csv'
WITH (DATA_SOURCE = 'MK_ADLS_Sales', FORMAT = 'CSV', FIRSTROW=2, 
FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')

Вместо этого он выводит следующее сообщение об ошибке:

Ссылочный внешний источник данных "MK_ADLS_Sales" не найден.

Я также попробовал следующее, но появляется то же сообщение об ошибке, что и выше.

SELECT * 
FROM OPENROWSET(BULK  'salesorderdetail.csv',
                DATA_SOURCE = 'MK_ADLS_Sales',
                SINGLE_CLOB) AS DataFile;

Может кто-нибудь, пожалуйста, помогите?Спасибо!

(с использованием SSMS v17.9, стандартная версия базы данных SQL Azure, Windows 10)

1 Ответ

0 голосов
/ 17 декабря 2018

API хранилища BLOB-объектов еще не доступны для учетных записей хранилища Azure Data Lake Gen2.Эти API отключены, чтобы предотвратить непреднамеренные проблемы с доступом к данным, которые могут возникнуть из-за того, что API хранилища BLOB-объектов еще не взаимодействуют с API Azure Data Lake Gen2.

Источник: https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-known-issues

Это означает, что пока API поддержки BLOB-объектов не доступен для ADLS Gen 2, мы не можем использовать подход T-SQL, как описано здесь .

...