Оптимизация таблиц Delta Lake

Преобразование и анализ данных с Microsoft Fabric

Luis Silva

Solution Architect - Data & AI

Что такое Delta Lake?

  • Слой хранения с открытым исходным кодом для лейкхаусов
  • Транзакции ACID, управление метаданными и версионирование
  • Fabric использует формат таблиц Delta Lake (Parquet) как стандарт
  • Совместимость со всеми компонентами Fabric

Схема архитектуры Fabric: данные принимаются и хранятся в виде таблиц Delta Lake, затем запрашиваются через Power BI

Преобразование и анализ данных с Microsoft Fabric

Обслуживание таблиц

  • Поддержание таблиц Delta в рабочем состоянии
  • Операции обслуживания таблиц:
    • Optimize
    • V-Order
    • Vacuum
Преобразование и анализ данных с Microsoft Fabric

Optimize

  • Объединение нескольких небольших файлов Parquet в один большой
    • Оптимальный размер файла — от 128 МБ до 1 ГБ
    • Улучшение сжатия и распределения для ускорения чтения
    • Рекомендуется выполнять после загрузки больших таблиц

Схема: таблица лейкхауса из множества небольших файлов Parquet оптимизируется в два больших; исходные файлы становятся неактивными

Преобразование и анализ данных с Microsoft Fabric

Optimize

  • Объединение нескольких небольших файлов Parquet в один большой
    • Оптимальный размер файла — от 128 МБ до 1 ГБ
    • Улучшение сжатия и распределения для ускорения чтения
    • Рекомендуется выполнять после загрузки больших таблиц

Схема: таблица лейкхауса из множества небольших файлов Parquet оптимизируется в два больших; исходные файлы становятся неактивными

Преобразование и анализ данных с Microsoft Fabric

Запуск команды Optimize из проводника Lakehouse

Снимок экрана: команда Maintenance в проводнике Lakehouse с выделенной опцией Run OPTIMIZE command

Преобразование и анализ данных с Microsoft Fabric

Запуск команды Optimize в Spark SQL

%%sql
OPTIMIZE <lakehouse>.<table>;
Преобразование и анализ данных с Microsoft Fabric

Запуск команды Optimize в PySpark

from delta.tables import DeltaTable

dt = DeltaTable.forPath( spark, "Tables/<table>" )
dt.optimize().executeCompaction()
Преобразование и анализ данных с Microsoft Fabric

V-Order

  • Специальная оптимизация при записи файлов Parquet
  • Включена по умолчанию
Преобразование и анализ данных с Microsoft Fabric

Применение V-Order из проводника Lakehouse

Снимок экрана: команда Maintenance в проводнике Lakehouse с выделенной опцией Apply V-ORDER

Преобразование и анализ данных с Microsoft Fabric

Управление записью V-Order в сессии Apache Spark

  • Включить V-Order для сессии

    %%sql 
    SET spark.sql.parquet.vorder.enabled=TRUE
    

     

  • Отключить V-Order для сессии

    %%sql 
    SET spark.sql.parquet.vorder.enabled=FALSE
    
Преобразование и анализ данных с Microsoft Fabric

Применение V-Order при оптимизации таблицы

%%sql 
OPTIMIZE <table|fileOrFolderPath> VORDER;
Преобразование и анализ данных с Microsoft Fabric

Vacuum

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

Схема: таблица лейкхауса из двух активных больших файлов Parquet и множества неактивных небольших файлов; после выполнения Vacuum устаревшие файлы удаляются из хранилища

Преобразование и анализ данных с Microsoft Fabric

Vacuum

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

Схема: таблица лейкхауса из двух активных больших файлов Parquet и множества неактивных небольших файлов; после выполнения Vacuum устаревшие файлы удаляются из хранилища

Преобразование и анализ данных с Microsoft Fabric

Запуск Vacuum из проводника Lakehouse

Снимок экрана: команда Maintenance в проводнике Lakehouse с выделенной опцией Run VACUUM

Преобразование и анализ данных с Microsoft Fabric

Давайте потренируемся!

Преобразование и анализ данных с Microsoft Fabric

Preparing Video For Download...