Size: a a a

2019 September 24

A

Alex in Data Engineers
когда там оказывается МНОГО записей
источник

M

Mi in Data Engineers
в metastore?
источник

A

Alex in Data Engineers
да
источник

AK

Andrew Kochen in Data Engineers
А вот не пишет( На repartition падает NullPointerException, очень странно
Caused by: java.lang.NullPointerException
at org.apache.spark.sql.execution.datasources.parquet.ParquetWriteSupport$$anonfun$org$apache$spark$sql$execution$datasources$parquet$ParquetWriteSupport$$makeWriter$8.apply(ParquetWriteSupport.scala:164)
источник

AK

Andrew Kochen in Data Engineers
Я пока заново наливаю таблицу с writeLegacyFormat в true. Отпишусь, помогло ли
источник

A

Alex in Data Engineers
Mi
в metastore?
в PARTITION_KEY_VALS 22млн+ записей
и это начинанает тупить в некоторых запросах из-за кривого формата хранения
источник

AZ

Anton Zadorozhniy in Data Engineers
Alex
а кто как hive масштабирует?
мне тоже интересно, мы умеем только плодить метасторы/хайвсервера и делить их между тенантами
источник

A

Alex in Data Engineers
ясно, просто у нас один и там некоторые запросы начинают подвисать на 30+ секунд на выгребании метаданных
источник

AZ

Anton Zadorozhniy in Data Engineers
в хайве нет возможности разделить метастор, проблема схожая с масштабируемостью неймноды
источник

AZ

Anton Zadorozhniy in Data Engineers
но вот какие-нибудь экстремальные опции с очень быстрыми базами - было бы интересно послушать
источник

A

Alex in Data Engineers
там больше у меня претензии к тому как они запихали в хранилище PARTITION_KEY_VALS =\

в качестве ключа хранят varchar и дальше в зависимости от того что это за партиция начинают каст к нужному типу
а так как там еще и строка HIVE_DEFAULT_PARTITION может храниться, то всё становится очень грустно =(
источник

AZ

Anton Zadorozhniy in Data Engineers
да, там много мест где можно улучшить
источник

A

Alex in Data Engineers
where ((case when "FILTER0"."PART_KEY_VAL" <> '__HIVE_DEFAULT_PARTITION__' then cast("FILTER0"."PART_KEY_VAL" as decimal(21,0)) else null end) =  '1138926');

и таких фильтром через OR у нас до 1000+ доходит =(
источник

A

Alex in Data Engineers
источник

AZ

Anton Zadorozhniy in Data Engineers
наши когда писали престо пытались там что-то починить
источник

A

Alex in Data Engineers
но они так и не вмержили еще это
источник

AZ

Anton Zadorozhniy in Data Engineers
наши тоже ничего не выдали наружу, теперь все в QG живет
источник

AZ

Anton Zadorozhniy in Data Engineers
Alex
where ((case when "FILTER0"."PART_KEY_VAL" <> '__HIVE_DEFAULT_PARTITION__' then cast("FILTER0"."PART_KEY_VAL" as decimal(21,0)) else null end) =  '1138926');

и таких фильтром через OR у нас до 1000+ доходит =(
у вас бареметал или облако?
источник

A

Alex in Data Engineers
бареметал в постгре
источник

A

Alex in Data Engineers
как уже сказал в самом PARTITION_KEY_VALS 22млн+
выборка из таблицы с 50к+ партициями
и вот когда на такой вот веселый фильтр в котором 1к+ записей через or нарывается

то становится очень печально
источник