выбор данных из внешнего источника (большой двоичный объект хранилища Azure) с помощью внешней таблицы / Polybase в SQL. Таблица создана, но данные не возвращены

У меня есть "|" файл с разделителями в BLOB-объекте хранилища AZURE, и я пытаюсь создать внешнюю таблицу для выбора из этих данных. Я пошагово следовал инструкциям здесь: https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-table-transact-sql?view=sql-server-ver15 Я считаю, что все настройки сервера верны. Я действительно могу создать таблицу, но когда я выбираю из нее (из раздела внешних таблиц под таблицами), данные не возвращаются. Ниже мой оператор выбора, я обрезал поля в целях экономии места.

CREATE EXTERNAL TABLE [dbo].[customer]
(
    [Id] [int] NOT NULL,
    [CustomerName] [varchar](255) NULL,
    [AccountType] [varchar](255) NULL,
    [State] [varchar](255) NULL,
    [DateExtracted] [date] NULL,
    [tablename][varchar](50) NULL,
    [databaseName] [varchar](50) NULL
)   
WITH (LOCATION='customerfiles/',
      DATA_SOURCE = AzureStorage,  
      FILE_FORMAT = TextFileFormat  
);  

Исходный код в лазурном режиме выглядит следующим образом: tmmdevstorage - container> customerfiles> file1.txt, file2.txt Я подозреваю, что у меня что-то не так с указанием местоположения. Я не получаю ошибок при создании внешней таблицы и при выборе из нее, просто нет данных. в хранилище BLOB-объектов есть файлы, содержащие данные.

Любые идеи относительно того, что мне не хватает?


person Cascone    schedule 24.01.2020    source источник
comment
Я думаю, что у меня есть дополнительная информация по этому поводу, я считаю, что моя проблема где-то в настройках AZURE AD. Думаю, мне нужно найти следующее: CREATE DATABASE SCOPED CREDENTIAL ADLSCredential WITH IDENTITY = 'user', SECRET = '57r + LauBsO1eG3tP8iiw6rz1Qdupw36tydpFVokcVjaOj1xnAhpefnus6ijltAy =' СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ ADLSCredential с идентификатором = '536540b4-4239-45fe-b9a3-629f97591c0c @ login.microsoftonline.com/42f988bf-85f1-41af-91ab-2d2cd011da47/ ', SECRET =' BjdIlmtKp4Fpyh9hIvr8HJlUida / seM5kQ3EpLAmeDI = '   -  person Cascone    schedule 24.01.2020
comment
Нужно найти, как получить удостоверение личности   -  person Cascone    schedule 24.01.2020


Ответы (2)


Вы правы в том, что вы говорите в своем комментарии выше: при доступе к хранилищу BLOB-объектов из внешней таблицы вам нужны учетные данные для хранилища BLOB-объектов. Кроме того, учетные данные должны быть защищены главным ключом базы данных. Посмотрите на эту ссылку, которая очень хорошо объясняет.

При создании удостоверения вы устанавливаете параметры IDENTITY и SECRET. Для хранилища BLOB-объектов вы можете установить IDENTITY на любую строку, которую хотите, я всегда использую user.

Вы можете найти SECRET на портале Azure, если перейдете к своей учетной записи хранения. Он находится в разделе Клавиши доступа в левом меню:

введите здесь описание изображения

Надеюсь это поможет.

person Niels Berglund    schedule 25.01.2020

Указывая местоположение в коде внешних таблиц, измените значение на «/ customerfiles». Это прочитает все файлы, имеющиеся в папке customerfiles, и загрузит данные во внешние таблицы. Также вы должны правильно указать местоположение вашего файла при создании внешнего источника данных.

person Jagadish Chigurupati    schedule 30.01.2020