Схема Avro изменилась после K SQL "INSERT INTO" - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть своего рода простое деловое требование:

  1. Отправка сообщений о продажах в topi c (называемый просто sales.all и с его схемой avro)
  2. Выполнить K SQL в топиках продаж c для направления каждой продажи в конкретный топ продаж магазина c (sales.store1, sales.store2, et c) также с той же схемой, потому что это те же данные
  3. Для этого я просто создаю оба потока для sales.all и sales.store1
  4. Я запускаю Insert для отправки продажи во второй топи c
insert into SALES_STREAM_STORE1 SELECT *
    from  SALES_ORIG_ALL 
    where "Message is from store 1";
Здесь у меня возникает вопрос, следующим шагом является запуск приложения Stream, которое проверяет и исправляет некоторые бизнес-поля в продаже и отправляет его в sales.store1.verified topi c, всегда используя одну и ту же уникальную схему .

Но потоковое приложение не выполняется при десериализации из-за того, что схема не совпадает, вставка в K SQL, кажется, меняет ее (поля совпадают, но структура и имена не совпадать с исходным и каноническим объектом, который я использую). Я притворяюсь, что использовал оригинальный объект java avro, который использовал в производителе, и буду использовать его в дальнейшем.

На данный момент у меня есть 2 (объект схемы или java), которые имеют те же данные, совместимы между собой, так как я могу написать из sales.all в sales.store1, но я не могу использовать тот же объект java.

Я ожидал получить то же сообщение или объект на другой стороне K SQL вставить, это возможно?

Я уже исправил пространство имен, используя свойство VALUE_AVRO_SCHEMA_FULL_NAME.

Спасибо!

...