Руководство. Загрузка внешних данных с помощью идентификатора Microsoft Entra
В этой статье объясняется, как создавать внешние таблицы с помощью сквозного руководства Идентификатора Microsoft Entra.
Необходимые компоненты
Для выполнения этого руководства требуются следующие ресурсы:
- Рабочая область Azure Synapse Analytics и выделенный пул SQL
Предоставление доступа учетной записи идентификатора Microsoft Entra к учетной записи хранения
В этом примере используется учетная запись идентификатора Microsoft Entra (или группа) для проверки подлинности в исходных данных.
Чтобы включить доступ к данным в учетных записях Azure Data Lake Storage (ADLS) 2-го поколения, необходимо предоставить учетной записи идентификатора Майкрософт (или группе) доступ к исходной учетной записи. Чтобы предоставить необходимые разрешения, выполните следующие действия.
- Найдите свою учетную запись хранения на портале Azure .
- Выберите хранилище данных ->Контейнеры и перейдите в папку, в которой нужны исходные данные внешней таблицы.
- Выберите Управление доступом (IAM).
- Нажмите кнопку "Добавить" —> добавить назначение ролей.
- В списке ролей функции задания выберите средство чтения данных BLOB-объектов хранилища и нажмите кнопку "Далее".
- На странице "Добавить назначение ролей" нажмите кнопку "+ Выбрать участников". Откроется область "Выбор элементов" в правом углу.
- Введите имя требуемой учетной записи идентификатора Microsoft Entra. При отображении выберите нужную учетную запись и выберите "Выбрать".
- На странице добавления назначения ролей убедитесь, что список участников включает нужную учетную запись идентификатора Microsoft Entra. После проверки нажмите кнопку "Проверить и назначить".
- На странице подтверждения просмотрите изменения и выберите " Проверить и назначить".
Теперь учетная запись или группа идентификатора Microsoft Entra является членом роли чтения данных BLOB-объектов хранилища и имеет доступ к исходной папке.
Прием данных с помощью COPY INTO
Инструкция COPY INTO
T-SQL обеспечивает гибкую, высокую пропускную способность приема данных в таблицы и является основной стратегией приема данных в выделенные таблицы пула SQL. Он позволяет пользователям получать данные из внешних расположений без необходимости создавать какие-либо из дополнительных объектов базы данных, необходимых для внешних таблиц.
Инструкция COPY INTO
использует CREDENTIAL
аргумент для указания метода проверки подлинности, используемого для подключения к исходной учетной записи. Однако при проверке подлинности с помощью идентификатора Microsoft Entra или общедоступной учетной записи CREDENTIAL
хранения не требуется указывать. Чтобы запустить инструкцию COPY INTO
с помощью управляемого удостоверения рабочей области для проверки подлинности, используйте следующую команду T-SQL:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
[<CopyIntoOptions>]
);
Где:
<TableName>
— имя таблицы для приема данных.<AccountName>
— имя учетной записи ADLS 2-го поколения.<Container>
— имя контейнера в учетной записи хранения, в которой хранятся исходные данные.<Folder>
— это папка (или путь с вложенными папками), где исходные данные хранятся в контейнере. Вы также можете указать имя файла, указывая непосредственно на один файл.<CopyIntoOptions>
— это список других параметров, которые вы хотите предоставить инструкцииCOPY INTO
.
Дополнительные сведения и изучение полного синтаксиса см. в разделе COPY INTO (Transact-SQL).
Создание необходимых объектов базы данных
Для внешних таблиц требуется создать следующие объекты:
- Внешний источник данных, указывающий на исходную папку
- Формат внешнего файла, определяющий формат исходных файлов
- Определение внешней таблицы, используемое для запросов
Чтобы выполнить эти действия, необходимо использовать редактор SQL в рабочей области Azure Synapse или предпочитаемый клиент SQL, подключенный к выделенному пулу SQL. Давайте подробно рассмотрим эти шаги.
Создание внешнего источника данных
Следующим шагом является создание внешнего источника данных, указывающего, где находятся исходные данные, используемые внешней таблицей.
Чтобы создать внешний источник данных, используйте следующую команду T-SQL:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/
);
Где:
<ExternalDataSourceName>
— это имя, которое вы хотите использовать для внешнего источника данных.<AccountName>
— имя учетной записи ADLS 2-го поколения.<Container>
— это имя контейнера в учетной записи хранения, в которой хранятся исходные данные.<Folder>
— это папка (или путь с вложенными папками), где исходные данные хранятся в контейнере.
Дополнительные сведения о внешних источниках данных см. в статье CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Создание формата внешнего файла
Следующим шагом является создание формата внешнего файла. Он задает фактический макет данных, на которые ссылается внешняя таблица.
Чтобы создать формат внешнего файла, используйте следующую команду T-SQL. Замените <FileFormatName>
именем, которое вы хотите использовать для внешнего формата файла.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
В этом примере настройте такие параметры, как FIELD_TERMINATOR
, STRING_DELIMITER
FIRST_ROW
и другие, по мере необходимости в соответствии с исходными данными. Дополнительные параметры форматирования и дополнительные сведения см. в статье CREATE EXTERNAL FILE FORMAT (Transact-SQL).
Создание внешней таблицы
Теперь, когда создаются необходимые объекты, в которых хранятся метаданные для безопасного доступа к внешним данным, пришло время создать внешнюю таблицу. Чтобы создать внешнюю таблицу, используйте следующую команду T-SQL:
-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
Col1 INT,
Col2 NVARCHAR(100),
Col4 INT
)
WITH
(
LOCATION = '<Path>',
DATA_SOURCE = <ExternalDataSourceName>,
FILE_FORMAT = <FileFormatName>
);
Где:
<ExternalTableName>
— это имя, которое вы хотите использовать для внешней таблицы.<Path>
— это путь к исходным данным относительно расположения, указанного во внешнем источнике данных.<ExternalDataSourceName>
— это имя созданного внешнего источника данных.<FileFormatName>
— это имя созданного формата внешнего файла.
Обязательно измените имя таблицы и схему на нужное имя и схему данных в исходных файлах.
На этом этапе создаются все метаданные, необходимые для доступа к внешней таблице. Чтобы протестировать внешнюю таблицу, используйте запрос, например следующий пример T-SQL, чтобы проверить работу:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Если все было настроено правильно, данные из исходных данных должны отображаться в результате этого запроса.
Дополнительные сведения см. в CREATE EXTERNAL TABLE
статье CREATE EXTERNAL TABLE (Transact-SQL).