ksql 使用
注意执行命令要在ksqldb-server 而不是 ksqldb-cli 的容器下面
stream 和 table 的区别是,table必须定义primary key,而且执行了query后下次还可以拿到数据,而stream是没有的

ksql> print bear from beginning;
CREATE STREAM pageviews_original (viewtime bigint, userid varchar, pageid varchar) WITH (kafka_topic='pageviews', value_format='DELIMITED');
CREATE TABLE users_original (registertime bigint primary key, gender varchar, regionid varchar, userid varchar) WITH (kafka_topic='users', value_format='JSON');
ksql> select * from USERS_ORIGINAL emit changes limit 5;
ksql> select * from users_original where rowtime >='2022-03-18' emit changes;
ksql> show queries;
stream 和 table都可以insert data
ksql> insert into stream_test values('1',1,1,1);
ksql> insert into users_original(REGISTERTIME,GENDER,REGIONID,USERID) values(1,'G1','G1','G1');
想count的话只能通过group by 的操作,数据量大的话会是个灾难
ksql> select key,count(*) from stream_test group by key emit changes;
ksql> select count(*) from stream_test group by 1 emit changes;
可以用describe extended 命令查询
ksql> describe stream_test extended;
Oftentimes—and particularly in testing and development—you’ll want to read the data that already exists in a topic. To tell KSQL to do this, change the offset property:
ksql> SET 'auto.offset.reset'='earliest';
update table 的话可以通过join语法创建个新表来实现
浙公网安备 33010602011771号