Спасибо, Фача, за твои предложения, очень признателен.
Я новичок в концепции HDFS, поэтому, пожалуйста, не обращайте внимания на c вопросы,
Каково будет влияние на бег запросы, которые обращаются к этим конкретным c файлам при замене некомпактных файлов на сжатые файлы (изменить таблицу ... раздел ... указать местоположение). Я считаю, что запросы могут потерпеть неудачу. Кто мы можем минимизировать воздействие?
Скопируйте каталог hdfs раздела в другое место
Поскольку у нас есть два раздела в одной таблице, состояние и хранилище, буду ли я для перебора каждого подраздела?
/ tableName / state = CA / store = macys / file1.parquet /tableName/state=CA/store=macys/file2.parquet
/ tableName / state = CA / store = JCP / file2.parquet /tableName/state=CA/store=JCP/file2.parquet
/ tableName / state = NY / store = macys / file1. паркет /tableName/state=NY/store=macys/file2.parquet
/ tableName / state = NY / store = JCP / file2.parquet /tableName/state=NY/store=JCP/file2.parquet
For each state
for each store
get list of files in this dir to replace later
compact
/tableName/state=$STATE/store=$STORE (SPARK JOb?)
replace uncompacted files with compacted files
alter table ... partition ... set location
Я бы предпочел ваше другое предложение на шаге 5 «так же замените« маленькие »файлы в исходном месте раздела на их сжатую версию»
Как бы я go вперед с его реализацией лучше всего будет сделать это с помощью скриптов, scala или другого языка программирования. У меня есть базовые c знания скриптов, хороший опыт в java и новичок в scala, но я могу научиться за пару дней.
С уважением, P