Мне нужно вставить данные в заданную внешнюю таблицу, которая должна быть разбита по вставленной дате.Мой вопрос: как Hive обрабатывает генерацию меток времени?Когда я выбираю метку времени для всех вставленных записей, например:
WITH delta_insert AS (
SELECT trg.*, from_unixtime(unix_timestamp()) AS generic_timestamp
FROM target_table trg
)
SELECT *
FROM delta_insert;
Будет ли метка времени всегда одинаковой для всех записей, даже если для запроса уходит много времени?
Илив качестве альтернативы я должен только выбрать фактическую временную метку и соединить ее со всем, что будет выбрано впоследствии?
WITH insert_timestamp AS (
SELECT from_unixtime(unix_timestamp()) AS insert_timestamp
),
delta_insert AS (
SELECT trg.*, insert_timestamp.insert_timestamp
FROM target_table trg, insert_timestamp
)
SELECT *
FROM delta_insert;
Поскольку не рекомендуется делать перекрестные объединения в Hive, мне интересно, какой будет лучший подход, поскольку я ненедостаточно тестовых данных для имитации длительных запросов, чтобы быть уверенными, что они вставлены в один и тот же раздел дельта-загрузки.