Как установить ключевое поле при создании таблицы в KSQL? - PullRequest
0 голосов
/ 15 марта 2019

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

Я создал таблицу по агрегации, как показано ниже:

CREATE TABLE withdrawal_less_than_5min AS 
SELECT executedate, status, count(*) as count 
FROM TB3_WITHDRAW_RECORD_EXCLUDE_INTERNAL_USERS 
GROUP BY executedate,status;

И когда я DESCRIBE EXTENDED withdrawal_less_than_5min, ключевое поле таблицы устанавливается так, как показано ниже, что, как я считаю, должно быть исполнителем и статусом.

Key field : KSQL_INTERNAL_COL_0|+|KSQL_INTERNAL_COL_1

Однако, когда я пытаюсь соединить его с другой таблицей с такой же агрегацией, возвращается эта ошибка.

Source table (A) key column (KSQL_INTERNAL_COL_0|+|KSQL_INTERNAL_COL_1) 
is not the column used in the join criteria (EXECUTEDATE).

Как мне установить поле ключа? Спасибо.

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете создать ключ следующим образом -

CREATE TABLE withdrawal_less_than_5min with (key='EXECUTEDATE') AS 
SELECT executedate, status, count(*) as count 
FROM TB3_WITHDRAW_RECORD_EXCLUDE_INTERNAL_USERS 
GROUP BY executedate,status partition by 'EXECUTEDATE';

Вы также можете следить за блогом Робина - https://www.confluent.io/stream-processing-cookbook/ksql-recipes/inspecting-changing-topic-keys.

Для любых ошибок или вопросов с Ksql, Поиск Робин Моффет, он уже ответил на наши запросы, чтобы помочь:)

...