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


Что такое Delta Live Tables?

Примечание.

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

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

Delta Live Tables основана на Apache Spark, но вместо того чтобы определять конвейеры данных с помощью ряда отдельных задач Apache Spark, вы определяете потоковые tables и материализованные views, которые система должна создать, а также запросы, необходимые для заполнения и update этих потоковых tables и материализованных views.

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

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

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

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

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

Следующий table сравнивает Delta Live Tables с Apache Spark:

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

Ключевые понятия Delta Live Tables

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

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

стриминг table

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

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

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

Views

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

Трубопровод

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

Как наборы данных Delta Live Tables обрабатывают данные?

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

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

Задайте свои первые наборы данных в Delta Live Tables

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

Примечание.

Delta Live Tables отделяет определения набора данных от обработки update, а записные книжки Delta Live Tables не предназначены для интерактивного выполнения.

Как настроить конвейеры Delta Live Tables?

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

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

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

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

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

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

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

Перед обработкой данных с помощью Delta Live Tablesнеобходимо настроить конвейер. После настройки конвейера можно активировать update для вычисления результатов для каждого набора данных в конвейере. Чтобы начать использовать get конвейеры Delta Live Tables, см. : Руководство по запуску вашего первого конвейера Delta Live Tables.

Что такое конвейер update?

Конвейерные процессы развертывают инфраструктуру и пересчитывают состояние данных при запуске update. В update делается следующее:

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

Конвейеры могут выполняться непрерывно или по расписанию в зависимости от затрат и задержки вашего варианта использования. См. статью Запуск update в конвейере Delta Live Tables.

Загружайте данные с помощью Delta Live Tables

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

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

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

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

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

Вы можете использовать ожидания для указания элементов управления качеством данных для содержимого набора данных. В отличие от CHECKconstraint в традиционной базе данных, которая препятствует добавлению записей, не проходящих constraint, ожидания обеспечивают гибкость при обработке данных, не соответствующих требованиям к качеству данных. Такая гибкость позволяет обрабатывать и хранить данные, которые, по вашему мнению, будут неструктурированными, а также данные, которые должны соответствовать строгим требованиям к качеству. См. Управление качеством данных с помощью Delta Live Tables.

Delta Live Tables расширяет функциональные возможности Delta Lake. Поскольку tables, созданные и управляемые Delta Live Tables, являются Delta tables, они имеют те же гарантии и функции, которые предоставляет Delta Lake. См. статью Сведения о Delta Lake.

Delta Live Tables добавляет несколько свойств table в дополнение к множеству table свойств, которые можно set в Delta Lake. Ссылки на свойства и Delta Live см. в справочнике по свойствам Delta Live .

Как создаются и управляются tables в Delta Live Tables

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

Для большинства операций следует разрешить Delta Live Tables обрабатывать все обновления, вставки и удаления в целевой объект table. Дополнительные сведения и ограничения см. в разделе "Сохранение удаления или обновления вручную".

Задачи обслуживания, выполняемые Delta Live Tables

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

Ограничения

Сведения об list ограничениях см. в разделе Delta Live Ограничения Tables.

Сведения о list требованиях и ограничениях, относящихся к использованию Delta Live Tables с CatalogUnity, см. в Catalog использовать Unity с конвейерами Delta Live Tables

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