Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Processing
  • Начало работы
    • Все инструкции
      • Подключение к интерфейсам компонентов
      • Использование Sqoop
      • Настройка Apache Iceberg™
        • Настройка Delta Lake в однокластерном режиме
        • Настройка Delta Lake в мультикластерном режиме
        • Советы по настройке и применению Delta Lake
    • Подготовка и использование виртуальных окружений Python
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Оптимизация записи в S3-совместимые хранилища
  • Увеличение эффективности работы оператора OPTIMIZE
  • Синтаксис для конвертации партиционированных таблиц
  • Принудительная очистка истории изменений таблицы
  1. Пошаговые инструкции
  2. Сервисы Apache и другие сторонние сервисы
  3. Delta Lake
  4. Советы по настройке и применению Delta Lake

Советы по настройке и применению Delta Lake

Статья создана
Yandex Cloud
Обновлена 27 декабря 2024 г.
  • Оптимизация записи в S3-совместимые хранилища
  • Увеличение эффективности работы оператора OPTIMIZE
  • Синтаксис для конвертации партиционированных таблиц
  • Принудительная очистка истории изменений таблицы

Оптимизация записи в S3-совместимые хранилищаОптимизация записи в S3-совместимые хранилища

Если часть данных в рамках задания представлена в форматах, отличных от таблиц Delta Lake, то для оптимизации записи данных в S3-совместимые хранилища настройте коммиттеры S3A.

Если все данные в рамках задания хранятся в таблицах Delta Lake, то настройка коммиттеров S3A не нужна. Delta Lake использует свой алгоритм управления записью в S3-совместимые хранилища, функционально эквивалентный коммиттерам S3A.

Увеличение эффективности работы оператора OPTIMIZEУвеличение эффективности работы оператора OPTIMIZE

Оператор OPTIMIZE в Delta Lake 2.0.2 повышает скорость запросов на чтение из таблицы за счет того, что объединяет несколько мелких файлов в более крупные. Это объединение происходит в рамках нескольких параллельных заданий. Максимальное количество таких параллельных заданий регулируется свойством spark.databricks.delta.optimize.maxThreads, и по умолчанию составляет 10.

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

Синтаксис для конвертации партиционированных таблицСинтаксис для конвертации партиционированных таблиц

Оператор CONVERT TO DELTA преобразует обычные таблицы Spark SQL в формат Delta Lake. Чтобы преобразовать партиционированную таблицу, укажите в запросе колонки партиционирования:

CONVERT TO DELTA table_name PARTITIONED BY (part_col_1 INT, part_col_2 INT);

Принудительная очистка истории изменений таблицыПринудительная очистка истории изменений таблицы

По умолчанию Delta Lake хранит историю изменений таблицы в течение 30 суток. Этот период определен на уровне таблицы в параметре delta.logRetentionDuration и изменить его можно командой:

ALTER TABLE <схема_и_имя_таблицы> SET TBLPROPERTIES ('delta.logRetentionDuration' = "interval <интервал>")

Подробнее об управлении параметрами таблиц см. в документации Delta Lake.

Чтобы принудительно очистить историю изменений таблицы:

  1. Реорганизуйте данные в таблице, чтобы повысить эффективность доступа:

    OPTIMIZE <имя_таблицы>;
    
  2. Разрешите удаление всей истории изменений:

    SET spark.databricks.delta.retentionDurationCheck.enabled = false;
    
  3. Очистите историю изменений:

    VACUUM <имя_таблицы> RETAIN 0 HOURS;
    

Была ли статья полезна?

Предыдущая
Настройка Delta Lake в мультикластерном режиме
Следующая
Все задания
Проект Яндекса
© 2025 ООО «Яндекс.Облако»