Trying the follow
Want to count sales per terminal, window by hour, once got this working can add more fields like store name also…
CREATE TABLE json_sales_per_terminal_point WITH (KAFKA_TOPIC='json_sales_per_terminal_point',
VALUE_FORMAT='Json',
PARTITIONS=1)
as
SELECT
store->id as store_id,
TerminalPoint as terminal_point,
count(1) as sales_per_terminal
FROM json_salescompleted1
WINDOW TUMBLING (SIZE 1 HOUR)
group by store->id , TerminalPoint
EMIT CHANGES;
Example record
{
"InvoiceNumber": "1341243123341232",
"SaleDateTime": "2024-06-11T16:53:39.911+02:00",
"SaleTimetamp": "1718117619911",
"Store" : {
"Id": "2143412",
"Name": "sdfgsjdjndnjdfgs"
},
"Clerk": {
"Id": "231",
"Name": "grfvnowifgbvuwe"
},
"TerminalPoint": "124",
"BasketItems":[
{
"Id": "234123412",
"Name": "",
"Brand": "fgtwruyergfd",
"Category": "something",
"Price": 12412.00,
"Quantity": 3
}
],
"Net": 442.23,
"VAT": 10.00,
"Total": 452.23,
"PayDateTime": "2023-12-12-T13:22:37.000+02:00",
"PayTimetamp": "1718117619911",
"Paid": 452.23,
"FinTransactionID": "42dfgt245wsdg34231rfwfg234234"
}
ERROR
Key format does not support schema.
format: KAFKA
schema: Persistence{columns=[STORE_ID
STRING KEY,TERMINAL_POINT
STRING KEY], features=}
reason: The ‘KAFKA’ format only supports a single field. Got: [STORE_ID
STRING KEY,TERMINAL_POINT
STRING KEY]