У меня есть большая таблица (1Tb данных), которую необходимо объединить с меньшей таблицей (100k записей)
SELECT st.id
FROM small_table st
LEFT JOIN large_table lt
ON st.id = lt.id
В приведенном выше сценарии я не могу контролировать, какую таблицу нужноЯ пытался использовать подсказки MAPJOIN, STREAMTABLE, а также пытался использовать такие параметры, как условный размер задачи, небольшой размер таблицы и т. д. Поскольку маленькая таблица находится в самой левой части объединения, она не кэшируется в памяти
Есть ли способ управления таблицей, которую необходимо кэшировать
Примечание: я не могу изменить позиции таблицы или код:
Ни здесь ...
... ни здесь ...
Используемые параметры:
set hive.execution.engine=tez;
set hive.tez.container.size=4096;
set hive.merge.mapredfiles=true;
set tez.shuffle-vertex-manager.min-src-fraction=0.25;
set tez.shuffle-vertex-manager.max-src-fraction=0.75;
set hive.exec.dynamic.partition.mode=nonstrict;
set tez.am.resource.memory.mb=3200 ;
set tez.am.java.opts=-server -Xmx3200m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC -XX:+UseConcMarkSweepGC ;
SET hive.auto.convert.join=true;
set hive.auto.convert.join.noconditionaltask.size=288435456;