Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Delta Lake — это оптимизированный уровень хранения, который предоставляет основу для таблиц в Lakehouse на платформе Databricks. Delta Lake — это программное обеспечение с открытым исходным кодом, которое расширяет возможности файлов данных Parquet с помощью журнала транзакций на основе файлов для ACID-транзакций и масштабируемой обработки метаданных. Delta Lake полностью совместим с API Apache Spark и разработан для тесной интеграции со структурированной потоковой передачей, что позволяет легко использовать одну копию данных для операций пакетной и потоковой передачи и обеспечения добавочной обработки в масштабе.
Delta Lake — это формат по умолчанию для всех операций в Azure Databricks. Если иное не указано, все таблицы в Azure Databricks являются таблицами Delta Lake. Databricks первоначально разработал протокол Delta Lake и продолжает активно участвовать в проекте открытый код. Многие из оптимизаций и продуктов платформы Databricks опираются на гарантии, предоставляемые Apache Spark и Delta Lake. Для получения сведений об оптимизациях в Azure Databricks см. рекомендации по оптимизации в Azure Databricks.
Справочные сведения о командах Delta Lake SQL см. в разделе Инструкции Delta lake.
Журнал изменений в Delta Lake содержит четко определенный открытый протокол, который может использоваться любой системой для чтения журнала. См. раздел Протокол журнала транзакций Delta.
Начало работы с Delta Lake
Все таблицы в Azure Databricks — это таблицы Delta Lake по умолчанию. Независимо от того, используете ли вы DataFrames Apache Spark или SQL, вы получаете все преимущества Delta Lake просто за счет сохранения данных в хранилище данных с параметрами по умолчанию.
Примеры базовых операций Delta Lake, таких как создание таблиц, чтение, запись и обновление данных, см. в руководстве по созданию таблиц Delta Lake и управлению ими.
Рекомендации Databricks и рекомендации по использованию Delta Lake см. в разделе Рекомендации: Delta Lake.
Преобразование и загрузка данных в Delta Lake
Azure Databricks предлагает множество функций, которые ускоряют и упрощают загрузку данных в архитектуру Lakehouse.
| Метод | Описание |
|---|---|
| Руководство. Создание конвейера ETL с помощью конвейеров Lakeflow | Создайте сквозной конвейер ETL с помощью конвейеров Lakeflow. |
| Настройка инкрементальной загрузки из Azure Data Lake Storage | Настройте инкрементальную загрузку из облачного хранилища с помощью Auto Loader и конвейеров Lakeflow. |
| Потоковые таблицы | Используйте потоковые таблицы для приема данных в режиме только добавления и низколатентной потоковой обработки в конвейерах Lakeflow. |
| Начало работы с COPY INTO для загрузки данных | Инкрементально и идемпотентно загружайте данные из облачного хранилища с использованием SQL. |
| Что такое автозагрузчик? | Загружайте файлы из облачного хранилища инкрементально по мере их поступления. |
| Создание или изменение таблицы путем загрузки файлов | Отправьте файлы и создайте таблицы из пользовательского интерфейса Azure Databricks. |
| Добавочное клонирование таблиц Parquet и Apache Iceberg в Delta Lake | Выполняйте инкрементное клонирование таблиц Parquet или Apache Iceberg в Delta Lake. |
| Преобразовать в Delta Lake | Однократное преобразование таблиц Parquet или Apache Iceberg в Delta Lake. |
| Партнеры по технологиям | Подключите сторонних партнеров и инструменты к Azure Databricks lakehouse. |
Полный список вариантов подключения см. раздел «Выбрать стандартный разъём».
Обновление и изменение таблиц Delta Lake
Атомарные транзакции с Delta Lake позволяют использовать множество вариантов обновления данных и метаданных. Чтобы избежать повреждения таблиц, Databricks рекомендует избегать взаимодействия непосредственно с файлами данных и журналов транзакций в каталогах файлов Delta Lake.
| Операция | Описание |
|---|---|
| Вставка или обновление данных в таблице Delta Lake с помощью операции MERGE | Вставьте или обновите данные в таблице Delta Lake с помощью операции MERGE. |
| Выборочно перезаписывать данные с помощью Delta Lake | Перезаписать подмножества данных на основе фильтров и секций. |
| Обновление схем таблиц с помощью эволюции схемы | Вручную или автоматически обновите схему таблицы без перезаписи данных. |
| Переименовывать и удалять столбцы с помощью сопоставления столбцов в Delta Lake | Переименуйте или удалите столбцы без перезаписи данных. |
Инкрементные и потоковые рабочие нагрузки в Delta Lake
Delta Lake оптимизирован для структурированной потоковой передачи в Azure Databricks. Конвейеры Lakeflow расширяют встроенные возможности с упрощенным развертыванием инфраструктуры, расширенным масштабированием и управляемыми зависимостями данных.
| Функция | Описание |
|---|---|
| Потоковое чтение и запись таблиц Delta Lake | Используйте таблицы Delta Lake как источники и приемники для Structured Streaming с readStream и writeStream. |
| Использование канала изменений данных в Azure Databricks | Отслеживайте изменения на уровне строк между версиями таблицы Delta Lake или Apache Iceberg версии 3. |
Запрос предыдущих версий таблицы
Каждая запись в таблицу Delta Lake создает новую версию таблицы. Журнал транзакций можно использовать для просмотра изменений в таблице и запроса предыдущих версий таблицы. См. статью "Работа с журналом таблиц".
Усовершенствования схемы Delta Lake
Delta Lake проверяет схему при записи, гарантируя, что все данные, записанные в таблицу, соответствуют заданным требованиям.
| Функция | Описание |
|---|---|
| Обеспечение соблюдения схемы | Проверьте качество данных, применяя схему при записи. |
| Ограничения в Azure Databricks | Примените принудительно применяемые ограничения целостности, а также информационные ограничения первичного ключа, внешнего ключа и уникальности. |
| Сгенерированные столбцы Delta Lake | Автоматически генерируйте значения столбцов с помощью пользовательских функций. |
| Обогащение таблиц пользовательскими метаданными | Добавляйте комментарии и настраиваемые метаданные к таблицам и столбцам, чтобы упростить поиск данных. |
Управление файлами и индексированием данных с помощью Delta Lake
Azure Databricks задает множество параметров по умолчанию для Delta Lake, влияющих на размер файлов данных и количество версий таблиц, которые хранятся в журнале. Delta Lake использует сочетание синтаксического анализа метаданных и макета физических данных, чтобы уменьшить количество отсканированных файлов для выполнения любого запроса.
| Функция | Описание |
|---|---|
| Использование жидкостной кластеризации для таблиц | Упростите структуру данных и оптимизируйте производительность запросов без разбиения на разделы с помощью жидкой кластеризации. |
| Пропуск данных | Пропускать неуместные файлы во время запроса с помощью статистики столбцов, порядка Z и оптимизированного макета данных. |
| Оптимизация макета файла данных | Сжатие небольших файлов данных для повышения производительности запросов. |
| Удалите неиспользуемые файлы данных с помощью VACUUM | Удалите устаревшие файлы данных, чтобы сократить затраты на хранение. |
| Автоматическое удаление строк с автоматическим временем жизни | Автоматически удалять строки из управляемых таблиц после настраиваемого периода времени. |
| Управление размером файла данных | Управляйте размером целевого файла вручную или включите автоматическую настройку размера файла. |
Настройка и проверка параметров Delta Lake
Azure Databricks хранит все данные и метаданные для таблиц Delta Lake в облачном хранилище объектов. Многие конфигурации можно задать на уровне таблицы или в сеансе Spark. Вы можете просмотреть сведения о таблице Delta Lake, чтобы узнать, какие параметры настроены.
| Функция | Описание |
|---|---|
| Просмотрите сведения о таблице с помощью команды describe detail | Просмотр конфигураций таблиц и метаданных с помощью DESCRIBE DETAIL команды. |
| Справочник по свойствам таблицы | Список ссылок на свойства таблицы, доступные для таблиц Delta Lake. |
Конвейеры данных с использованием Delta Lake и конвейеров Lakeflow
Azure Databricks рекомендует пользователям использовать архитектуру медальона для обработки данных с помощью ряда таблиц по мере очистки и обогащения данных. Конвейеры Lakeflow упрощают рабочие нагрузки ETL путем оптимизированного выполнения и автоматического развертывания инфраструктуры и масштабирования.
Совместимость функций Delta Lake
Не все функции Delta Lake находятся во всех версиях Databricks Runtime. Сведения о версионировании Delta Lake см. в разделе "Совместимость функций Delta Lake и протоколы".
Документация по API Delta Lake
Для большинства операций чтения и записи в таблицах Delta Lake можно использовать API Sql Spark или Apache Spark DataFrame .
Инструкции по SQL, относящиеся к Delta Lake, см. в выражениях Delta Lake.
Azure Databricks обеспечивает совместимость на уровне двоичного кода с интерфейсами API Delta Lake в Databricks Runtime. Сведения о том, как просмотреть версию API Delta Lake, упакованную в каждой версии Databricks Runtime, см. в разделе «Системная среда» в соответствующей статье в заметках о выпуске Databricks Runtime. Документация по API Delta Lake для Python, Scala и Java см. в документации по OSS Delta Lake.