У меня есть таблица Impala, в которой ключи хранятся в виде строк
есть схема этой таблицы:
CREATE TABLE user_actions_t
(
`useractionid` BIGINT,
`streamid` VARCHAR,
PRIMARY KEY(useractionid)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU
также у меня есть словарь таблицы:
CREATE TABLE stream_dict_t
(
`streamid` BIGINT,
`stream` varchar,
PRIMARY KEY(streamid)
)
PARTITION BY HASH PARTITIONS 16
STORED AS KUDU
В этих таблицах есть упрощенные данные:
insert into devl_mlc.user_actions_t values (1, '[1,2,3]'), (2, '[2,3]')
insert into devl_mlc.stream_dict_t values (1, 'daily'), (2, 'weekly'), (3, 'monthly')
Что дает:
для таблицы stream_dict_t
1 daily
2 weekly
3 monthly
и для таблицы user_actions_t
2 [2,3]
1 [1,2,3]
Я хочу объединить две таблицы, но не могу использовать обычное объединение из-за streamid, определенного как строка.
Ожидаемый результат:
2 [weekly,monthly]
3 [daily,weekly,monthly]
Я пытался использовать строковые функции Impala, но не могу понять, как создать один запрос, который может обрабатывать данные.
Спасибо