выбор данных из внешнего источника (azure хранилище больших двоичных объектов) с использованием внешней таблицы / Polybase в SQL. Таблица создана, но данные не возвращены - PullRequest
0 голосов
/ 24 января 2020

У меня есть "|" Файл с разделителями в 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  
);  

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

Есть идеи, что мне не хватает?

Ответы [ 2 ]

1 голос
/ 25 января 2020

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

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

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

enter image description here

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

0 голосов
/ 30 января 2020

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

...