Поделиться через


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

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

  1. Войдите в рабочую область Azure Databricks.
  2. На боковой панели нажмите кнопку "Создать>кластер".
  3. В пользовательском интерфейсе кластеров укажите уникальное имя кластера.
  4. Если путь к исходным данным — это путь тома, для версии среды выполнения Databricks Runtimeвыберите 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 Tables не предназначены для интерактивного запуска в ячейках ноутбука. Выполнение ячейки, содержащей синтаксис Delta Live Table в записной книжке, возвращает сообщение о том, является ли запрос синтаксически допустимым, но не выполняет логику запроса. На следующем шаге описывается создание конвейера из только что созданной записной книжки приема.

Шаг 4. Создание и публикация конвейера

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

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

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

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

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

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