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


Что такое DLT?

Заметка

Для DLT требуется план Premium. Чтобы получить дополнительные сведения, обратитесь к группе учетной записи Databricks.

DLT — это декларативная платформа, предназначенная для упрощения создания надежных и обслуживаемых конвейеров извлечения, преобразования и загрузки (ETL). Вы указываете, какие данные следует принять и как его преобразовать, и DLT автоматизирует ключевые аспекты управления конвейером данных, включая оркестрацию, управление вычислениями, мониторинг, принудительное применение качества данных и обработку ошибок.

DLT основан на Apache Spark, но вместо определения конвейеров данных с помощью ряда отдельных задач Apache Spark вы определяете потоковые таблицы и материализованные представления, которые система должна создавать, а запросы, необходимые для заполнения и обновления этих потоковых таблиц и материализованных представлений.

Дополнительные сведения о преимуществах создания и запуска конвейеров ETL с помощью DLT см. на странице продукта DLT.

преимущества DLT по сравнению с Apache Spark

Apache Spark — это универсальный единый модуль аналитики с открытым кодом, включая ETL. DLT строится на Spark для решения конкретных и распространенных задач обработки ETL. DLT может значительно ускорить ваш переход к производству, если ваши требования включают следующие задачи обработки, например:

  • Прием данных из типичных источников.
  • Постепенное преобразование данных.
  • Выполнение записи измененных данных (CDC).

Однако DLT не подходит для реализации некоторых типов процедурной логики. Например, требования к обработке, такие как запись во внешнюю таблицу или включение условного условия, которое работает с внешним хранилищем файлов или таблицами баз данных, невозможно выполнить внутри кода, определяющего набор данных DLT. Для реализации обработки, не поддерживаемой DLT, Databricks рекомендует использовать Apache Spark или включить поток данных в задание Databricks, которое выполняет обработку в отдельной подзадаче. См. задачу конвейера DLT для заданий.

В следующей таблице сравнивается DLT с Apache Spark:

Способность DLT Apache Spark
Преобразования данных Вы можете преобразовать данные с помощью SQL или Python. Вы можете преобразовать данные с помощью SQL, Python, Scala или R.
Добавочная обработка данных Многие преобразования данных автоматически обрабатываются постепенно. Необходимо определить новые данные, чтобы можно было постепенно обработать их.
Оркестрация Преобразования автоматически оркеструются в правильном порядке. Необходимо убедиться, что различные преобразования выполняются в правильном порядке.
Параллелизм Все преобразования выполняются с правильным уровнем параллелизма. Для параллельного выполнения несвязанных преобразований необходимо использовать потоки или внешний оркестратор.
Обработка ошибок Сбои автоматически повторяются. Необходимо решить, как обрабатывать ошибки и повторные попытки.
Контроль Метрики и события регистрируются автоматически. Необходимо написать код для сбора метрик о выполнении или качестве данных.

основные понятия DLT

На следующем рисунке показаны важные компоненты конвейера DLT, за которым следует объяснение каждого из них.

основные понятия DLT.

таблица потоковой передачи

Потоковая таблица — это таблица Delta с одним или несколькими потоками, записывающими в неё. Потоковые таблицы обычно используются для приема данных, так как они обрабатывают входные данные ровно один раз и могут обрабатывать большие объемы данных только для добавления. Таблицы потоковой передачи также полезны для трансформации потоков данных больших объемов с низкой задержкой.

Материализованное представление

Материализованное представление — это представление, содержащее предварительно вычисляемые записи на основе запроса, определяющего материализованное представление. Записи в материализованном представлении автоматически обновляются при помощи DLT на основе плана обновления или триггеров конвейера обработки данных. Каждый раз при обновлении материализованного представления гарантируется получение тех же результатов, что и при выполнении определяющего запроса на последних доступных данных. Однако это часто делается без повторной компиляции полного результата с нуля, используя добавочное обновление. Материализованные представления обычно используются для преобразований.

Представления

Все представления в Azure Databricks вычисляют результаты из исходных наборов данных по мере их запроса, используя оптимизации кэширования при наличии. DLT не публикует представления в каталоге, поэтому на них можно ссылаться только в конвейере, в котором они определены. Представления полезны как промежуточные запросы, которые не должны предоставляться конечным пользователям или системам. Databricks рекомендует использовать представления для применения ограничений качества данных или преобразования и обогащения наборов данных, которые управляют несколькими подчиненными запросами.

Трубопровод

Конвейер — это совокупность потоковых таблиц и материализованных представлений, которые обновляются вместе. Эти таблицы потоковой передачи и материализованные представления объявляются в исходных файлах Python или SQL. Конвейер также включает конфигурацию, которая определяет вычислительные ресурсы, используемые для обновления потоковых таблиц и материализованных представлений при запуске конвейера. Аналогично тому, как шаблон Terraform определяет инфраструктуру в облачной учетной записи, конвейер DLT определяет наборы данных и преобразования для обработки данных.

Как наборы данных DLT обрабатывают данные?

В следующей таблице описывается, как материализованные представления, потоковые таблицы и представления обрабатывают данные:

Тип набора данных Как записи обрабатываются с помощью определенных запросов?
Потоковая таблица Каждая запись обрабатывается ровно один раз. Предполагается, что это источник, в который можно только добавлять.
Материализованное представление Записи обрабатываются по мере необходимости, чтобы получить точные результаты для текущего состояния данных. Материализованные представления должны использоваться для задач обработки данных, таких как преобразования, агрегаты или предварительные вычисления медленных запросов и часто используемые вычисления.
Вид Записи обрабатываются при каждом запросе представления. Используйте представления для промежуточных преобразований и проверок качества данных, которые не должны публиковаться в общедоступных наборах данных.

Объявите свои первые наборы данных в DLT

DLT представляет новый синтаксис для Python и SQL. Сведения об основах синтаксиса конвейера см. в статье Разработка кода конвейера с помощью Python и Разработка кода конвейера с помощью SQL.

Заметка

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

Как настроить конвейеры DLT?

Параметры для конвейеров DLT делятся на две широкие категории:

  1. Конфигурации, определяющие коллекцию записных книжек или файлов (известных как исходный код), которые используют синтаксис DLT для объявления наборов данных.
  2. Конфигурации, управляющие инфраструктурой конвейера, управлением зависимостями, обработкой обновлений и сохранением таблиц в рабочей области.

Большинство конфигураций являются необязательными, но некоторые требуют внимательного внимания, особенно при настройке рабочих конвейеров. К ним относятся следующие:

  • Чтобы сделать данные доступными за пределами конвейера, необходимо объявить целевую схему для публикации в хранилище метаданных Hive или целевой каталог и целевую схему для публикации в каталоге Unity.
  • Разрешения доступа к данным настраиваются через кластер, используемый для выполнения. Убедитесь, что кластер имеет соответствующие разрешения, сконфигурированные для источников данных и целевого расположения хранилища, если указано.

Дополнительные сведения об использовании Python и SQL для написания исходного кода для конвейеров см. в справочнике по языку DLT SQL и справочнике по языку DLT Python .

Дополнительные сведения о параметрах и конфигурациях конвейера см. в разделе Настройка конвейера DLT.

Развертывание первого конвейера и активация обновлений

Перед обработкой данных с помощью DLT необходимо настроить конвейер. После настройки конвейера можно активировать обновление, чтобы вычислить результаты для каждого набора данных в конвейере. Чтобы начать использовать конвейеры DLT, см. раздел Учебник: Запуск первого конвейера DLT.

Что такое обновление конвейера?

Конвейеры развертывают инфраструктуру и пересчитывают состояние данных, когда вы запускаете обновление . Обновление выполняет следующее:

  • Запускает кластер с правильной конфигурацией.
  • Обнаруживает все таблицы и представления, определенные и проверяет наличие ошибок анализа, таких как недопустимые имена столбцов, отсутствующие зависимости и синтаксические ошибки.
  • Создает или обновляет таблицы и представления с самыми последними доступными данными.

Пайплайны могут выполняться непрерывно или по расписанию в зависимости от ваших требований к затратам и задержке. См. запуск обновления в конвейере DLT.

загрузка данных с помощью DLT

DLT поддерживает все источники данных, доступные в Azure Databricks.

Databricks рекомендует использовать потоковые таблицы для большинства сценариев загрузки данных. Для файлов, поступающих в облачное хранилище объектов, Databricks рекомендует автозагрузчик. Вы можете напрямую получать данные с помощью DLT из большинства шин сообщений.

Дополнительные сведения о настройке доступа к облачному хранилищу см. в конфигурации облачного хранилища.

Для форматов, не поддерживаемых автозагрузчиком, можно использовать Python или SQL для запроса любого формата, поддерживаемого Apache Spark. См. раздел Загрузка данных с помощьюDLT.

Мониторинг и применение качества данных

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

DLT расширяет функциональные возможности Delta Lake. Так как таблицы, созданные и управляемые DLT, являются таблицами Delta, они имеют те же гарантии и функции, предоставляемые Delta Lake. См. Что такое Delta Lake?.

DLT добавляет несколько свойств таблицы в дополнение ко многим свойствам таблицы, которые можно задать в Delta Lake. См. справочник свойств DLT и, а также справочник свойств таблицы Delta и.

Создание и управление таблицами с помощью DLT

Azure Databricks автоматически управляет таблицами, созданными с помощью DLT, определяя способ обработки обновлений для правильного вычисления текущего состояния таблицы и выполнения ряда задач обслуживания и оптимизации.

Для большинства операций следует разрешить DLT обрабатывать все обновления, вставки и удаления в целевую таблицу. Дополнительные сведения и ограничения см. в разделе Оставление вручную удалений или обновлений.

задачи обслуживания, выполняемые DLT

DLT выполняет задачи обслуживания в течение 24 часов после обновления таблицы. Обслуживание может повысить производительность запросов и сократить затраты, удалив старые версии таблиц. По умолчанию система выполняет полную операцию OPTIMIZE, за которой следует VACUUM. Вы можете отключить OPTIMIZE, задав pipelines.autoOptimize.managed = false в свойствах таблицы . Задачи обслуживания выполняются только в том случае, если обновление конвейера выполняется в 24 часа до планирования задач обслуживания.

Delta Live Tables теперь называется DLT

Продукт, ранее известный как Delta Live Tables, теперь называется DLT.

Ограничения

Список ограничений см. в разделе DLT.

Список требований и ограничений, относящихся к использованию DLT с каталогом Unity, см. в разделе Использование каталога Unity с конвейерами DLT

Дополнительные ресурсы