Подключение данных из 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. Создание кластера

Чтобы создать кластер, сделайте следующее:

  1. Войдите в рабочую область Azure Databricks.
  2. На боковой панели нажмите кнопку "Создать>кластер".
  3. В пользовательском интерфейсе кластеров укажите уникальное имя кластера.
  4. Если путь к исходным данным — это путь к тому, для версии среды выполнения Databricks выберите 13.2 или более поздней.
  5. Выберите Create cluster (Создать кластер).

Шаг 2. Создание записной книжки для исследования данных

В этом разделе описывается создание записной книжки для изучения данных, чтобы вы могли понять данные перед созданием конвейера данных.

  1. На боковой панели нажмите кнопку +Создать>записную книжку.

    Записная книжка автоматически присоединяется к последнему используемому кластеру (в этом случае кластер, созданный на шаге 1. Создание кластера).

  2. Введите имя записной книжки.

  3. Нажмите кнопку языка и выберите Python или SQL в раскрывающемся меню. Python выбран по умолчанию.

  4. Чтобы подтвердить доступ к исходным данным в ADLS 2-го поколения, вставьте следующий код в ячейку записной книжки, щелкните Меню запускаи нажмите кнопку "Выполнить ячейку".

    SQL

    LIST '<path-to-source-data>'
    

    Python

    %fs ls '<path-to-source-data>'
    

    Замените <path-to-source-data> путь к каталогу, содержаму данные.

    Отображается содержимое каталога, содержащего набор данных.

  5. Чтобы просмотреть пример записей, чтобы лучше понять содержимое и формат каждой записи, вставьте следующую запись в ячейку записной книжки, щелкните Меню запускаи нажмите кнопку "Выполнить ячейку".

    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. Прием необработанных данных

Чтобы принять необработанные данные, сделайте следующее:

  1. На боковой панели нажмите кнопку "Создать>записную книжку".

    Записная книжка автоматически присоединяется к последнему используемому кластеру (в данном случае кластер, созданный ранее в этой статье).

  2. Введите имя записной книжки.

  3. Нажмите кнопку языка и выберите Python или SQL в раскрывающемся меню. Python выбран по умолчанию.

  4. Вставьте следующий код в ячейку записной книжки:

    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, сделайте следующее:

  1. На боковой панели щелкните "Рабочие процессы", перейдите на вкладку "Разностные динамические таблицы " и нажмите кнопку "Создать конвейер".
  2. Введите имя конвейера.
  3. В режиме конвейера выберите "Активировано".
  4. Для исходного кода выберите записную книжку, содержащую исходный код конвейера.
  5. Для назначения выберите каталог Unity.
  6. Чтобы убедиться, что таблица управляется каталогом Unity, и любой пользователь с доступом к родительской схеме может запрашивать ее, выберите каталог и целевую схему из раскрывающихся списков.
  7. Если у вас нет разрешения на создание кластера, выберите политику кластера, которая поддерживает разностные динамические таблицы из раскрывающегося списка.
  8. Для параметра "Дополнительно" задайте для каналазначение "Предварительный просмотр".
  9. Примите все остальные значения по умолчанию и нажмите кнопку "Создать".

Шаг 5. Планирование конвейера

Чтобы запланировать конвейер, сделайте следующее:

  1. На боковой панели щелкните Delta Live Tables.
  2. Щелкните имя конвейера, который вы хотите запланировать.
  3. Нажмите кнопку "Запланировать>добавление расписания".
  4. В поле "Имя задания" введите имя задания.
  5. Установите для параметра Расписание значение По расписанию.
  6. Укажите период, время начала и часовой пояс.
  7. Настройте один или несколько адресов электронной почты, на которые будут отправляться оповещения о запуске конвейера и об его успешном или неуспешном выполнении.
  8. Нажмите кнопку Создать.

Следующие шаги