KSQL join возвращает пустые поля - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь присоединиться к следующему потоку

 Field     | Type
---------------------------------------
 ROWTIME   | BIGINT           (system)
 ROWKEY    | VARCHAR(STRING)  (system)
 USER_ID   | VARCHAR(STRING)
 FIRSTNAME | VARCHAR(STRING)
---------------------------------------

со следующей таблицей:

 Field     | Type
---------------------------------------
 ROWTIME   | BIGINT           (system)
 ROWKEY    | VARCHAR(STRING)  (system)
 USER_ID   | VARCHAR(STRING)
 USERNAME  | VARCHAR(STRING)
---------------------------------------

с использованием

SELECT M.USER_ID, \
       C.USERNAME \
FROM MY_STREAM M \
LEFT JOIN MY_TABLE C \
ON (M.USER_ID = C.USER_ID);

, но USERNAME содержит только null значений.

1 | null
2 | null
3 | null
4 | null
5 | null
6 | null
7 | null
8 | null

Я уверен, что есть общие user_id s и что username не является null в таблице. Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 03 мая 2018

См. Мой ответ на в этом посте , в котором я демонстрирую, как устранять неисправности в таких соединениях.

Короче говоря, вам нужно ввести сообщения в теме вашей таблицы в столбец, к которому вы присоединяетесь.

Если вы собираетесь присоединиться к USER_ID, тогда:

SELECT ROWKEY, USER_ID FROM MY_TABLE

должен вернуть

1 | 1 
2 | 2
3 | 3

и т.д.

...