使用KSQL在kafka主题上创建流

时间:2019-03-25 14:12:53

标签: apache-kafka ksql

下面是我来自kafka主题的示例日志行

2019-03-04T08:53:03.023Z "cd8cbe" 100.212.212.212 - - [20/Feb/2019:12:13:33 +0000] "GET http://dl-mysite.com/drm/PRIORITY1080/HINDI_MOVIES/somemovie.mp4/video/avc1/4/seg-1281.m4s HTTP/1.1" 200 325040 "-" "Dalvik/2.1.0 (Linux; U; Android 6.0; Le X509 Build/DHXOSOP5801911241S)" "256" "0.000"

我正在尝试使用KSQL在上述主题上创建流。以下是我用来创建流的脚本。运行以下流创建脚本后,它将返回“流已创建”消息,但是select语句(从test_duplicate_stream中选择*)不会返回任何内容。

CREATE STREAM test_duplicate_stream (logArrivalTime varchar,edgeid varchar,ip varchar,col1_empty varchar,col2_empty varchar, eventdate varchar,url varchar,response_code int,response_length BIGINT,col3_empty varchar,user_agent varchar,request_length varchar, response_time varchar) WITH (kafka_topic='test_duplicate',VALUE_FORMAT='DELIMITED');

我认为'DELIMITED'不是在此处使用的正确值,因为我的字段不是逗号分隔而是空格分隔。为我的日志行创建流的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

KSQL当前支持:

  • JSON
  • 以逗号分隔(定界)
  • Avro

如果您的数据不是以上格式之一,那么您必须先更改序列化才能处理它。

有关查询何时不返回数据的信息,另请参见Notes on troubleshooting KSQL