Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Tip
Microsoft Fabric Data Warehouse — это реляционное хранилище корпоративного масштаба на основе озера данных, с архитектурой, готовой к будущему, встроенной ИИ и новыми функциями. Если вы не знакомы с хранилищем данных, начните с Fabric Data Warehouse. Существующие рабочие нагрузки выделенного пула SQL могут обновляться до Fabric для доступа к новым возможностям в области науки о данных, аналитики в реальном времени и отчетности.
В этой статье объясняется, как создавать внешние таблицы при помощи Microsoft Entra ID в режиме транзита.
Prerequisites
Для выполнения этого руководства требуются следующие ресурсы:
- Рабочая область Azure Synapse Analytics и выделенный пул SQL
Предоставьте учетной записи Microsoft Entra ID доступ к хранилищу.
В этом примере используется учетная запись Microsoft Entra ID (или группа) для проверки подлинности по отношению к исходным данным.
Чтобы включить доступ к данным в учетных записях Azure Data Lake Storage (ADLS) 2-го поколения, необходимо предоставить учетной записи Microsoft Entra ID (или группе) доступ к данной учетной записи. Чтобы предоставить необходимые разрешения, выполните следующие действия.
- На портале Azure найдите учетную запись хранения.
- Выберите хранилище данных ->Контейнеры и перейдите в папку, в которой нужны исходные данные внешней таблицы.
- Выберите Управление доступом (IAM).
- Нажмите кнопку "Добавить" —> добавить назначение ролей.
- В списке ролей выберите Чтение данных BLOB-хранилища и выберите 'Далее'. Если требуются разрешения на запись, выберите Storage Blob Data Contributor.
- На странице "Добавить назначение ролей " нажмите кнопку "+ Выбрать участников". Откроется область "Выбор элементов" в правом углу.
- Введите имя нужной учетной записи Microsoft Entra ID. При отображении выберите нужную учетную запись и выберите "Выбрать".
- На странице Добавление назначения роли убедитесь, что список участников включает нужную учетную запись Microsoft Entra ID. После проверки нажмите кнопку "Проверить и назначить".
- На странице подтверждения просмотрите изменения и выберите "Проверить и назначить".
Теперь учетная запись или группа Microsoft Entra ID входит в роль чтения данных BLOB-объектов хранилища и имеет доступ к исходной папке.
Прием данных с помощью COPY INTO
Инструкция COPY INTO T-SQL обеспечивает гибкость и высокую пропускную способность загрузки данных в ваши таблицы и является основной стратегией загрузки данных в таблицы вашего выделенного пула SQL. Он позволяет пользователям получать данные из внешних расположений без необходимости создавать какие-либо из дополнительных объектов базы данных, необходимых для внешних таблиц.
Инструкция COPY INTO использует CREDENTIAL аргумент для указания метода проверки подлинности, используемого для подключения к исходной учетной записи. Однако при проверке подлинности с использованием Microsoft Entra ID или для общедоступной учетной записи хранения не нужно указывать CREDENTIAL. Чтобы запустить инструкцию COPY INTO с помощью проверки подлинности Entra ID, используйте следующую команду 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).
Запрос данных в ADLS 2-го поколения с помощью внешних таблиц
Внешние таблицы позволяют пользователям запрашивать данные из учетных записей Azure Data Lake Storage (ADLS) 2-го поколения без необходимости приема данных. Пользователи могут создать внешнюю таблицу, которая указывает на файлы в контейнере ADLS 2-го поколения и запрашивать ее так же, как обычную таблицу пользователей.
Ниже описан процесс создания внешней таблицы, указывающей на данные в ADLS 2-го поколения, с помощью проверки подлинности Entra ID.
Создание необходимых объектов базы данных
Для внешних таблиц требуется создать следующие объекты:
- Внешний источник данных, указывающий на исходную папку
- Формат внешнего файла, определяющий формат исходных файлов
- Определение внешней таблицы, используемое для запросов
Чтобы выполнить эти действия, необходимо использовать редактор 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_DELIMITERFIRST_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).