Что такое динамические таблицы Delta?

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

Примечание.

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

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

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

Что такое наборы данных Delta Live Tables?

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

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

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

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

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

Примечание.

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

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

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

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

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

Объявление первых наборов данных в разностных динамических таблицах

Разностные динамические таблицы содержат новый синтаксис для Python и SQL. Чтобы приступить к работе с синтаксисом Delta Live Table, ознакомьтесь с примерами Python и SQL в руководстве. Запуск первого конвейера Delta Live Table.

Примечание.

Разностные динамические таблицы отделяют определения набора данных от обработки обновлений, а записные книжки Delta Live Tables не предназначены для интерактивного выполнения. См. раздел "Что такое конвейер динамических таблиц Delta"?.

Что такое конвейер разностных динамических таблиц?

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

Конвейер содержит материализованные представления и таблицы потоковой передачи, объявленные в исходных файлах Python или SQL. Разностные динамические таблицы содержат зависимости между этими таблицами, гарантируя, что обновления выполняются в правильном порядке. Для каждого набора данных Delta Live Tables сравнивает текущее состояние с требуемым состоянием и продолжает создавать или обновлять наборы данных с помощью эффективных методов обработки.

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

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

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

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

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

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

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

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

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

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

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

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

Прием данных с помощью разностных динамических таблиц

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

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

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

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

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

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

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

Разностные динамические таблицы добавляют несколько свойств таблицы в дополнение к множеству свойств таблицы, которые можно задать в Delta Lake. См. справочные материалы по свойствам delta Live Table и справочник по свойствам таблицы Delta.

Создание и управление таблицами Delta Live Tables

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

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

Задачи обслуживания, выполняемые разностными динамическими таблицами

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

Ограничения

Действительны следующие ограничения.

  • Все таблицы, созданные и обновляемые разностными таблицами, являются таблицами Delta.
  • Таблицы Delta Live Tables можно определить только один раз, то есть они могут быть целью только одной операции во всех конвейерах Delta Live Tables.
  • Столбцы удостоверений не поддерживаются в таблицах, которые являются целевым APPLY CHANGES INTO объектом и могут быть перекомпилированы во время обновлений для материализованных представлений. По этой причине Databricks рекомендует использовать только столбцы удостоверений с таблицами потоковой передачи в Delta Live Tables. См. статью "Использование столбцов удостоверений" в Delta Lake.
  • Рабочая область Azure Databricks ограничена 100 параллельными обновлениями конвейера.

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

  • Delta Live Tables имеет полную поддержку в REST API Databricks. См . руководство по API разностных динамических таблиц.
  • Сведения о параметрах конвейера и таблицы см. в справочнике по свойствам "Динамические таблицы Delta".
  • Справочник по языку SQL для разностных динамических таблиц.
  • Справочник по языку Python для разностных динамических таблиц.