Оптимизация таблицы дельта-озера синапса без уменьшения количества файлов

Я создал простую таблицу дельта-озера синапсов с помощью:

CREATE TABLE IF NOT EXISTS db1.tbl1 (
id INT NOT NULL,
name STRING NOT NULL
)
USING DELTA

Я объединял строки данных в него несколько раз, так что теперь я вижу в общей сложности 15 файлов паркета в базовом контейнере учетной записи хранения ADLS gen 2. Если я выберу строки, я увижу свое последнее слияние, как и ожидалось, например:

+---+-------+
| id|   name|
+---+-------+
|  1|   adam|
|  2|    bob|
|  3|charles|
+---+-------+

однако, когда я бегу:

OPTIMIZE db1.tbl1

Я все еще вижу 15 файлов. разве он не должен был «уплотнить» файлы, значительно уменьшив общее количество файлов?

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
17
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Vacuum будет более подходящей командой для ваших нужд. Optimize больше подходит для перемещения данных в формате столбцов и оптимизации производительности вашей таблицы. Вакуум удалит ваши старые файлы данных. По умолчанию для вакуума сохраняется срок хранения 7 дней. Если вы хотите очистить более свежие файлы данных, вы можете указать это с помощью параметра сохранения. В этом случае вы сократите возможность путешествия во времени. Пример с уборкой всего старше 1 часа:

VACUUM db1.tbl RETAIN 1 HOURS

При желании вы также можете запустить эту команду в пробном режиме, чтобы увидеть, что происходит, прежде чем запускать ее. В этом списке будут файлы, которые нужно удалить:

VACUUM db1.tbl RETAIN 1 HOURS DRY RUN

Подробнее о команде вакуума здесь: https://docs.microsoft.com/en-us/azure/databricks/spark/latest/spark-sql/language-manual/delta-vacuum.

спасибо - я приму это как ответ. Кстати, мне пришлось настроить эту конфигурацию для применения периода «сохранения» — spark.conf.set («spark.databricks.delta.retentionDurationChec‌​k.enabled», False). Я также читал предупреждения об этом, например: docs.microsoft.com/en-us/azure/databricks/kb/delta/…. Также. тот факт, что в конфигурации есть «кирпичи данных», заставляет меня задаться вопросом, почему это так. Я не использую дельта-таблицу databricks — или, может быть, я даже не знаю об этом. в любом случае, спасибо еще раз.

siddarfer 17.05.2022 14:53

Другие вопросы по теме