Size: a a a

2020 October 08

IF

Ivan Fedorov in pro.kafka
Всем привет. Не подскажете есть ли возможность средствами KSQLDB сделать аггрегирующцую таблицу со связями 1:N
Например у нас идет стрим данных пользователей (users)
{"user_id": 1, "name": "Mike"}
{"user_id": 2, "name": "John"}

и заказов (orders)
{"order_id": 1, "user_id": 1, "total": 100}
{"order_id": 2, "user_id": 1, "total": 200}
{"order_id": 3, "user_id": 2, "total": 300}
{"order_id": 4, "user_id": 2, "total": 400}

А на выходе хотелось бы получить таблицу
{"user_id": 1, "name": "Mike", "orders": [{"order_id": 1, "total": 100}, {"order_id": 2, "total": 200}]}
{"user_id": 2, "name": "John", "orders": [{"order_id": 3, "total": 300}, {"order_id": 4, "total": 400}]}


Пытался решить это через COLLECT_LIST c MAP, он в целом собирает то что нужно, но т.к. умеет работать только с простыми типами приходится оборачивать масссив в строку и на выхорде получается
{"user_id": 2, "name": "John", "orders": ["{order_id: 3, total: 300}, {order_id: 4, total: 400}"]}

что уже не переваривает принимающая сторона
источник

VG

Vik Gamov in pro.kafka
Ivan Fedorov
Всем привет. Не подскажете есть ли возможность средствами KSQLDB сделать аггрегирующцую таблицу со связями 1:N
Например у нас идет стрим данных пользователей (users)
{"user_id": 1, "name": "Mike"}
{"user_id": 2, "name": "John"}

и заказов (orders)
{"order_id": 1, "user_id": 1, "total": 100}
{"order_id": 2, "user_id": 1, "total": 200}
{"order_id": 3, "user_id": 2, "total": 300}
{"order_id": 4, "user_id": 2, "total": 400}

А на выходе хотелось бы получить таблицу
{"user_id": 1, "name": "Mike", "orders": [{"order_id": 1, "total": 100}, {"order_id": 2, "total": 200}]}
{"user_id": 2, "name": "John", "orders": [{"order_id": 3, "total": 300}, {"order_id": 4, "total": 400}]}


Пытался решить это через COLLECT_LIST c MAP, он в целом собирает то что нужно, но т.к. умеет работать только с простыми типами приходится оборачивать масссив в строку и на выхорде получается
{"user_id": 2, "name": "John", "orders": ["{order_id: 3, total: 300}, {order_id: 4, total: 400}"]}

что уже не переваривает принимающая сторона
А почему users это стрим а не table?
источник

IF

Ivan Fedorov in pro.kafka
Vik Gamov
А почему users это стрим а не table?
можно и в таблицу превратить. но чем поможет?
источник

VG

Vik Gamov in pro.kafka
И результат наверное будет типа

{"user_id": 1, "name": "Mike", "orders": [{"order_id": 1, "total": 100}]}
{"user_id": 1, "name": "Mike", "orders": [{"order_id": 1, "total": 100}, {"order_id": 2, "total": 200}]}
{"user_id": 2, "name": "John", "orders": [{"order_id": 3, "total": 300}]}
{"user_id": 2, "name": "John", "orders": [{"order_id": 3, "total": 300}, {"order_id": 4, "total": 400}]}
источник

VG

Vik Gamov in pro.kafka
А подумаю и посоветуюсь людьми
источник

VG

Vik Gamov in pro.kafka
А то 1:30 ночи, чет я засиделся
источник

IF

Ivan Fedorov in pro.kafka
спасибо. буду ждать вестей
источник

MA

Michael Akushsky in pro.kafka
Господа
источник

MA

Michael Akushsky in pro.kafka
а расскажите мне за kafka acl
источник

MA

Michael Akushsky in pro.kafka
нет никакой информации о performance
источник

MA

Michael Akushsky in pro.kafka
как это всё ворочается, если 10 тысяч записей? А миллион если?
источник

N

Nick in pro.kafka
Michael Akushsky
как это всё ворочается, если 10 тысяч записей? А миллион если?
чтото стало очень интересно послушать что за кейс такой
источник

MA

Michael Akushsky in pro.kafka
Nick
чтото стало очень интересно послушать что за кейс такой
а я вот счас задумался - там же можно wildcard делать? А кейс такой - будут роутеры с кафка клиентом
источник

MA

Michael Akushsky in pro.kafka
авторизация по сертификатам
источник

MA

Michael Akushsky in pro.kafka
надо нарулить права доступа к топикам
источник

MA

Michael Akushsky in pro.kafka
первое и очевидное - acl per certificate
источник

MA

Michael Akushsky in pro.kafka
но это реально будут тонны и тонны записей, если так
источник

MA

Michael Akushsky in pro.kafka
там есть группы и/или wildcard?
источник

N

Nick in pro.kafka
были, но на топики
источник

DP

Denis Pavlyuchenko in pro.kafka
Michael Akushsky
а я вот счас задумался - там же можно wildcard делать? А кейс такой - будут роутеры с кафка клиентом
о, а можно вопрос про кейс. Роутеров мало, или они будут не напрмую в кафку ходить, а через какой-нибудь MQTT Proxy?
источник