Подключение данных из Azure Data Lake Storage 2-го поколения
В этой статье описывается, как подключить данные к новой рабочей области Azure Databricks из Azure Data Lake Storage 2-го поколения. Вы узнаете, как безопасно получить доступ к исходным данным в расположении облачного хранилища объектов, соответствующему тому каталога Unity (рекомендуется) или внешнему расположению каталога Unity. Затем вы узнаете, как добавим прием данных в управляемую таблицу каталога Unity с помощью автозагрузчика с разностными динамическими таблицами.
Примечание.
Сведения о подключении данных в Databricks SQL вместо записной книжки см. в статье "Загрузка данных с помощью потоковых таблиц в Databricks SQL".
Подготовка к работе
Если вы не являетесь администратором, в этой статье предполагается, что администратор предоставил вам следующее:
Доступ к рабочей области Azure Databricks с включенным каталогом Unity. Дополнительные сведения см. в разделе "Настройка каталога Unity" и управление ими.
Разрешение
READ FILES
на внешний том каталога Unity или внешнее расположение каталога Unity, соответствующее расположению облачного хранилища, которое содержит исходные данные. Дополнительные сведения см. в статье "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks".Путь к исходным данным.
Пример пути тома:
/Volumes/<catalog>/<schema>/<volume>/<path>/<folder>
Пример пути к внешнему расположению:
abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>
CREATE TABLE
ПривилегииUSE SCHEMA
схемы, в которую требуется загрузить данные.Разрешение на создание кластера или доступ к политике кластера, которая определяет кластер конвейера Delta Live Tables (
cluster_type
для поля задано значениеdlt
).Если путь к исходным данным является путем тома, кластер должен запустить Databricks Runtime 13.3 LTS или более поздней версии.
Внимание
Если у вас есть вопросы об этих предварительных требованиях, обратитесь к администратору учетной записи.
Шаг 1. Создание кластера
Чтобы создать кластер, сделайте следующее:
- Войдите в рабочую область Azure Databricks.
- На боковой панели нажмите кнопку "Создать>кластер".
- В пользовательском интерфейсе кластеров укажите уникальное имя кластера.
- Если путь к исходным данным — это путь к тому, для версии среды выполнения Databricks выберите 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 Table в записной книжке, возвращает сообщение о том, является ли запрос синтаксически допустимым, но не выполняет логику запроса. На следующем шаге описывается создание конвейера из только что созданной записной книжки приема.
Шаг 4. Создание и публикация конвейера
Чтобы создать конвейер и опубликовать его в каталоге Unity, сделайте следующее:
- На боковой панели щелкните "Рабочие процессы", перейдите на вкладку "Разностные динамические таблицы " и нажмите кнопку "Создать конвейер".
- Введите имя конвейера.
- В режиме конвейера выберите "Активировано".
- Для исходного кода выберите записную книжку, содержащую исходный код конвейера.
- Для назначения выберите каталог Unity.
- Чтобы убедиться, что таблица управляется каталогом Unity, и любой пользователь с доступом к родительской схеме может запрашивать ее, выберите каталог и целевую схему из раскрывающихся списков.
- Если у вас нет разрешения на создание кластера, выберите политику кластера, которая поддерживает разностные динамические таблицы из раскрывающегося списка.
- Для параметра "Дополнительно" задайте для канала значение "Предварительный просмотр".
- Примите все остальные значения по умолчанию и нажмите кнопку "Создать".
Шаг 5. Планирование конвейера
Чтобы запланировать конвейер, сделайте следующее:
- На боковой панели щелкните Delta Live Tables.
- Щелкните имя конвейера, который вы хотите запланировать.
- Нажмите кнопку "Запланировать>добавление расписания".
- В поле "Имя задания" введите имя задания.
- Установите для параметра Расписание значение По расписанию.
- Укажите период, время начала и часовой пояс.
- Настройте один или несколько адресов электронной почты, на которые будут отправляться оповещения о запуске конвейера и об его успешном или неуспешном выполнении.
- Нажмите кнопку Создать.
Следующие шаги
- Предоставьте пользователям доступ к новой таблице. Дополнительные сведения см. в разделе "Привилегии каталога Unity" и защищаемые объекты.
- Теперь пользователи с доступом к новой таблице могут запрашивать таблицу в записной книжке или использовать редактор SQL Databricks.