Несоответствие данных Hive Bucket Join (SMB) при объединении таблиц с таблицами секционирования и таблицами - PullRequest
0 голосов
/ 19 января 2019

У меня есть запрос улья, где он объединяется с 4 таблицами. Все таблицы разбиты по дате и объединены в соответствующие ключевые столбцы.

  1. Таблица A (Основная таблица) - разделена по дате и сгруппирована по C1, C2, C3, C4
  2. Таблица A объединяется с таблицей B (разделенной по дате и сгруппированной по C1) в столбце C1
  3. Таблица A объединяется с таблицей C (разбитой по дате и сгруппированной по C2) на C2
  4. Таблица A объединяется с таблицей D (разбитой по дате и сгруппированной по C3) на C3
  5. то же самое для другой таблицы E.

Ранее у меня были все таблицы только с соответствующими столбцами, когда я присоединился, агрегированные результаты были безупречны.

После того, как я представил раздел поверх сегментирования, объединения не происходят должным образом и пропускают записи, а метрики неверны. У меня все параметры для куста установлены в true, которые необходимы для соединения SMB.

Вот как выглядит мое объединение:

      FROM
        {schema_name}.A
      LEFT OUTER JOIN {schema_name}.B
        ON A.col1= B.col1
      LEFT OUTER JOIN {schema_name}.C
        ON B.col2 = C.col2
      LEFT OUTER JOIN {schema_name}.D
        ON C.col3 = D.col3
      LEFT OUTER JOIN {schema_name}.E
        ON D.col4 = E.col4
      WHERE A.datestr = '{process_date}'
        AND B.datestr = '{process_date}'
        AND C.datestr = '{process_date}'
        AND D.datestr = '{process_date}'
        AND E.datestr = '{process_date}'

Почему не работает после того, как я сделал раздел и bucketing?

...