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


Подключение данных из Azure Data Lake Storage

В этой статье описывается, как подключить данные к новой рабочей области Azure Databricks из Azure Data Lake Storage. Вы узнаете, как безопасно получить доступ к исходным данным в расположении облачного хранилища объектов, соответствующему тому каталога Unity (рекомендуется) или внешнему расположению каталога Unity. Затем вы узнаете, как постепенно принимать данные в таблицу, управляемую каталогом Unity, с использованием Auto Loader и декларативных конвейеров Lakeflow.

Примечание.

Сведения о подключении данных в 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 схемы, в которую требуется загрузить данные.

  • Разрешение на создание кластера или доступ к политике кластера , которая определяет кластер конвейера (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, вставьте следующий код в ячейку записной книжки, щелкните запустить меню, а затем щелкните запустить ячейку.

    SQL

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

    Питон

    %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
    

    Питон

    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>'
      )
    

    Питон

    @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>: поддерживаемый формат файла. Смотрите Параметры формата файла.

Примечание.

Lakeflow Declarative Pipelines не предназначены для интерактивного запуска в ячейках ноутбука. Выполнение ячейки, содержащей синтаксис декларативного конвейера Lakeflow в записной книжке, возвращает сообщение о том, является ли запрос синтаксически допустимым, но не выполняет логику запроса. На следующем шаге описывается, как создать конвейер из журнала загрузки данных, который вы только что создали.

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

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

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

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

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

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

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