Slide 28
Slide 28 text
FlinkSQLJob Custom Resource
apiVersion: rta/v1alpha1
kind: FlinkSQLJob
metadata:
name: itemcount
spec:
sql: |
CREATE TABLE source (
user_id STRING,
item_id STRING,
category_id STRING,
behavior STRING,
ts TIMESTAMP(3)
) WITH (
'connector' = 'kafka',
'topic' = 'user_behavior',
'properties.bootstrap.servers' = 'kafka:9092',
'format' = 'json'
);
CREATE TABLE sink (
user_id STRING,
item_count BIGINT
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://mysql:3306/flink',
'table-name' = 'user_item_count',
'username' = 'root',
'password' = ''
);
INSERT INTO sink
SELECT user_id, COUNT(DISTINCT item_id) AS item_count
FROM source
WHERE behavior = 'buy'
GROUP BY TUMBLE(ts, INTERVAL '1' HOUR), user_id;
parallelism: 2