Подключение данных из Azure Data Lake Storage 2-го поколения
В этой статье описывается, как подключить данные к новой рабочей области Azure Databricks из Azure Data Lake Storage 2-го поколения. Вы узнаете, как безопасно получить доступ к исходным данным в расположении облачного хранилища объектов, соответствующему тому каталога Unity (рекомендуется) или внешнему расположению каталога Unity. Затем вы узнаете, как осуществлять поэтапную загрузку данных в управляемую таблицу каталога Unity с помощью Auto Loader и Delta Live Tables.
Примечание.
Для загрузки данных в Databricks SQL вместо их загрузки в записной книжке см. раздел Загрузка данных с помощью потоковых таблиц в Databricks SQL.
Подготовка к работе
Если вы не являетесь администратором, в этой статье предполагается, что администратор предоставил вам следующее:
Доступ к рабочей области Azure Databricks, где включен каталог Unity. Дополнительные сведения см. в статье Настройка и управление каталогом Unity.
Разрешение
READ VOLUME
для внешнего тома или разрешениеREAD FILES
на внешнее расположение каталога Unity, соответствующее расположению облачного хранилища, содержащему ваши исходные данные. Дополнительные сведения см. в статье "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks".Путь к исходным данным.
Пример пути тома:
/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>
Пример пути к внешнему расположению:
abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
Привилегии
USE SCHEMA
иCREATE TABLE
схемы, в которую требуется загрузить данные.разрешение на создание кластера или доступ к политике кластера , определяющей кластер конвейера Delta Live Tables (поле
cluster_type
установлено наdlt
).Если путь к исходным данным является путем тома, кластер должен запустить Databricks Runtime 13.3 LTS или более поздней версии.
Внимание
Если у вас есть вопросы об этих предварительных требованиях, обратитесь к администратору учетной записи.
Шаг 1. Создание кластера
Чтобы создать кластер, сделайте следующее:
- Войдите в рабочую область Azure Databricks.
- На боковой панели нажмите кнопку "Создать>кластер".
- В пользовательском интерфейсе кластеров укажите уникальное имя кластера.
- Если путь к исходным данным — это путь тома, для версии среды выполнения Databricks Runtimeвыберите 13.2 или более поздней.
- Выберите Create cluster (Создать кластер).
Шаг 2. Создание записной книжки для исследования данных
В этом разделе описывается создание записной книжки для изучения данных, чтобы вы могли понять данные перед созданием конвейера данных.
На боковой панели нажмите кнопку +Создать>записную книжку.
Записная книжка автоматически присоединяется к последнему используемому кластеру (в этом случае кластер, созданный на шаге 1. Создание кластера).
Введите имя записной книжки.
Нажмите кнопку языка и выберите
Python
илиSQL
в раскрывающемся меню.Python
выбран по умолчанию.Чтобы подтвердить доступ к исходным данным в ADLS 2-го поколения, вставьте следующий код в ячейку записной книжки, щелкните
и нажмите кнопку "Выполнить ячейку".
SQL
LIST '<path-to-source-data>'
Python
%fs ls '<path-to-source-data>'
Замените
<path-to-source-data>
путь к каталогу, содержаму данные.Отображается содержимое каталога, содержащего набор данных.
Чтобы просмотреть пример записей, чтобы лучше понять содержимое и формат каждой записи, вставьте следующую запись в ячейку записной книжки, щелкните
и нажмите кнопку "Выполнить ячейку".
SQL
SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
Python
spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
Замените следующие значения:
-
<file-format>
: поддерживаемый формат файла. См . параметры формата файла. -
<path to source data>
: Путь к файлу в каталоге, который содержит данные.
При этом отображаются первые десять записей из указанного файла.
-
Шаг 3. Прием необработанных данных
Чтобы принять необработанные данные, сделайте следующее:
На боковой панели нажмите кнопку "Создать>записную книжку".
Записная книжка автоматически присоединяется к последнему используемому кластеру (в данном случае кластер, созданный ранее в этой статье).
Введите имя записной книжки.
Нажмите кнопку языка и выберите
Python
илиSQL
в раскрывающемся меню.Python
выбран по умолчанию.Вставьте следующий код в ячейку записной книжки:
SQL
CREATE OR REFRESH STREAMING TABLE <table-name> AS SELECT * FROM STREAM read_files( '<path-to-source-data>', format => '<file-format>' )
Python
@dlt.table(table_properties={'quality': 'bronze'}) def <table-name>(): return ( spark.readStream.format('cloudFiles') .option('cloudFiles.format', '<file-format>') .load(f'{<path-to-source-data>}') )
Замените следующие значения:
-
<table-name>
: имя таблицы, которая будет содержать загруженные записи. -
<path-to-source-data>
: путь к исходным данным. -
<file-format>
: поддерживаемый формат файла. См . параметры формата файла.
-
Примечание.
Delta Live Tables не предназначены для интерактивного запуска в ячейках ноутбука. Выполнение ячейки, содержащей синтаксис Delta Live Table в записной книжке, возвращает сообщение о том, является ли запрос синтаксически допустимым, но не выполняет логику запроса. На следующем шаге описывается создание конвейера из только что созданной записной книжки приема.
Шаг 4. Создание и публикация конвейера
Чтобы создать конвейер и опубликовать его в каталоге Unity, сделайте следующее:
- На боковой панели щелкните Рабочие процессы, перейдите на вкладку Delta Live Tables, а затем щелкните Создать конвейер.
- Введите имя конвейера.
- Для режима Pipelineвыберите Запущено.
- Для исходного кодавыберите записную книжку, содержащую исходный код конвейера.
- Для пункта назначения выберите Unity Catalog.
- Чтобы убедиться, что таблица управляется каталогом Unity, и любой пользователь с доступом к родительской схеме может запрашивать ее, выберите каталог и целевую схему из раскрывающихся списков.
- Если у вас нет разрешений на создание кластера, выберите политику кластера , которая поддерживает Delta Live Tables из списка в раскрывающемся меню.
- Для Advancedустановите значение предпросмотрдля канала .
- Примите все остальные значения по умолчанию и нажмите кнопку "Создать".
Шаг 5. Планирование конвейера
Чтобы запланировать конвейер, сделайте следующее:
- На боковой панели щелкните Delta Live Tables.
- Щелкните имя конвейера, который вы хотите запланировать.
- Нажмите кнопку "Запланировать>добавление расписания".
- В поле "Имя задания" введите имя задания.
- Установите расписание для на запланированное .
- Укажите период, время начала и часовой пояс.
- Настройте один или несколько адресов электронной почты, на которые будут отправляться оповещения о запуске конвейера и об его успешном или неуспешном выполнении.
- Нажмите кнопку Создать.
Следующие шаги
- Предоставьте пользователям доступ к новой таблице. Дополнительные сведения см. в разделе привилегии каталога Unity и защищаемые объекты.
- Теперь пользователи с доступом к новой таблице могут выполнять запросы к таблице в ноутбуке или использовать редактор Databricks SQL.