размер файла в улье больше, чем обычно - PullRequest
0 голосов
/ 30 ноября 2018

Я использую песочницу maprR для тестирования различных настроек в кустах и ​​MaprF.Я получил в основном два этапа на MaprFs.Первый этап состоит из папки, в которой хранится одна таблица в формате AvroContainer-Format.Заголовок avro содержит только ссылку на внешний сохраненный файл .avsc (схема avro).Эти avro файлы были созданы flume.Оттуда я создал внешнюю таблицу в улье на основе этих файлов avro.

Затем я создал паркет и таблицу орков в качестве второго этапа с той же схемой следующим образом:

CREATE EXTERNAL TABLE prc_cpn_orc 
LIKE stg_cpn
STORED AS ORC
LOCATION 'hdfs:////environments/icm/data/prc/public/cpn/orc'
TBLPROPERTIES ( "orc.compress"="snappy" );

CREATE EXTERNAL TABLE prc_cpn_prq 
LIKE stg_cpn
STORED AS PARQUET
LOCATION 'hdfs:////environments/icm/data/prc/public/cpn/prq'
TBLPROPERTIES ( "parquet.compress"="snappy" );

После того, как таблицы были созданы, я вставил данные из таблицы avro:

INSERT INTO TABLE prc_cpn_orc
SELECT * FROM stg_cpn;

INSERT INTO TABLE prc_cpn_prq
SELECT * FROM stg_cpn;

Теперь начинается запутанная часть, таблица avro намного меньше, чем две другие таблицы.После всего, что я прочитал, у avro должно быть худшее сжатие.Все три формата файлов здесь используют кодек сжатия snappy.

Вот так выглядит итоговая схема таблиц для всех трех:

1   cpn_id  int 
2   cmpgn_id    int 
3   cstmr_id    int 
4   cpn_barcode int 
5   cpn_text    string  
6   cpn_address string  
7   cpn_phone   string  
8   cpn_timezone    string  
9   cpn_partner string  
10  cpn_created_at  string

Каждая таблица содержит 16 миллионов строк.

Результаты:

  • Размер входной папки JSON: 3,42 ГБ (вход для Flume)
  • Таблица Avro: 791,75 МБ (700 файлов, созданных Flume SerDe)
  • Таблица ORC: 1,17 ГБ (6 файлов, сгенерированных Hive SerDe)
  • Стол для паркета: 1,84 ГБ (6 файлов, сгенерированных Hive SerDe)

Теоретически ORC должен занимать в 2 раза меньше места, чем avro, так как же может быть наоборот в моем случае?Я что-то пропустил?

...