ksql-datagen测试数据生成器
测试数据生成器ksql-datagen
用法
DataGen [help] [bootstrap-server= (defaults to localhost:9092)] [quickstart= (case-insensitive; one of 'orders', 'users', or 'pageviews')] schema= [schemaRegistryUrl= (defaults to http://localhost:8081)] format= (case-insensitive; one of 'avro', 'json', or 'delimited') topic= key= [iterations= (defaults to 1,000,000)] [maxInterval= (defaults to 500)] [propertiesFile=]
示例
ksql-datagen bootstrap-server=192.168.133.128:9492 quickstart=users format=json topic=users maxInterval=100
bootstrap-server:指定broker的地址
quickstart:指定demo数据类型(大小写不敏感)
format:指定数据格式
maxInterval:两行数据之间的时间间隔(单位:ms)
出现类似:org.apache.kafka.common.errors.TimeoutException: Topic users not present in metadata after 60000 ms. 排除网络原因后, 一般是bootstrap-server配置错误
在构造测试数据之前先执行创建topic、表的操作,具体操作如下:
(1)查看所有topic、表、stream信息: show topics;show tables; show stream;
(2)创建表、创建流(实际是对数据操作的监控、本省未落盘数据)
CREATE STREAM pageviews_original (viewtime bigint, userid varchar, pageid varchar) WITH
(kafka_topic='pageviews', value_format='DELIMITED');
KSQL的语法
ksql主要是针对正在处理的kafka数据通过sql进行处理进度查询--->类似mysql里面的视图,具体参见链接
注意如下两处
(1) 退出KSQL CLI不会终止正在执行的查询操作
(2) KSQL CLI 下执行使用sql脚本运行: RUNSCRIPT'/path/to/local/application.sql'; 存在使用上的限制,支持大部分操作,除了show tables; show topics, show streams等
(3) 命令行运行ksql:
方式1:echo -e "SHOW TOPICS;\nexit" | ksql
方式2:ksql http://localhost:8088 <<< "SHOW TOPICS;"对于一次执行多个操作的,需要使用换行符,这里需要注意