Я хотел бы получить первые N записей из каждого раздела в многораздельной таблице улья без необходимости десериализации каждой записи в таблице.Я видел несколько решений для других баз данных, но ни одно из них не работает в Hive без использования каждой отдельной записи.
Минимальный пример:
create table demo ( val int )
partitioned by (partid int);
insert into demo partition (partid=1)
select stack(5, 1, 2, 3, 4, 5);
insert into demo partition (partid=2)
select stack(5, 100, 200, 300, 400, 500)
insert into demo partition (partid=3)
select stack(5, -1, -2, -3, -4, -5)
insert into demo ...
...
Я бы хотелполучить результат
select * from partition_demo where partid = 1 limit 1
union all
select * from partition_demo where partid = 2 limit 1
union all
select * from partition_demo where partid = 3 limit 1
union all
...
без записи каждого отдельного предложения, и без десериализации всех данных в каждом разделе (что, по-видимому, происходит с использованием RANK OVER
).