(Presto Kafka连接器)如何将非结构化消息转换为结构化消息



我被一个问题困扰了很长时间。kafka中的数据大致如下:

presto:default> select _message from topic_2874_1 limit 5;
2016-10-24 17:12:39,1200032544,IRC7D184YIF6,a44fb5306d966921dc6b0faa5395e6662fc58c43,1477300352,5.1.6,02:00:00:00:00:00,223.104.10.244,4,CTRadioAccessTechnologyLTE,223.82.245.18,238,62,inews.gtimg.com,/newsapp_ls,200,SDWebImageDownloader,11092,0,0,1,,
2016-10-24 17:12:39,1200032544,IRC7D184YIF6,d41d8cd98f00b204e9800998ecf8427e36b64515,1477300347,5.1.6,02:00:00:00:00:00,183.38.234.248,4,WiFi,inews.gtimg.com,19,24,inews.gtimg.com,/newsapp_bt,200,QNImageLoaderRequest,51692,0,0,1,,
2016-10-24 17:12:40,1200032544,IRC7D184YIF6,4df4c5a34cca33c14ce9e351f82fba32cc5336b5,1477300359,5.1.6,02:00:00:00:00:00,123.138.243.146,4,WiFi,113.200.90.144,24,18,inews.gtimg.com,/newsapp_ls,200,SDWebImageDownloader,14922,0,0,1,,
2016-10-24 17:12:40,1200032544,IRC7D184YIF6,c32cedd56561780129d0967e1a7e6811d60f9ea4,1477300351,5.1.5,02:00:00:00:00:00,117.136.84.177,4,CTRadioAccessTechnologyLTE,183.232.121.140,227,1,r.inews.qq.com,/reportActualExpose,200,ASIFormDataRequest,29,0,0,1,,

它自然不像json类型;每个用逗号分隔的字段很可能长度不同。那么,如何将这些日志消息转换为结构化数据以供将来的SQL查询呢?我逐字阅读了关于kafka连接器的presto文档,但仍然无法得到解决方案

如果你事先知道数据的模式,你可以设置一个主题描述文件(Kafka教程的第5步和第6步):https://prestodb.io/docs/current/connector/kafka-tutorial.html#step-5-add-a-topic-decription-file.

基本上,这个主题描述文件是etc/kafka中的一个json文件,它将Kafka中的字段映射到Presto中的列。

注意:如果您使用RPM安装Presto,您需要通过在kafka.properties中设置kafka.table-description-dir=/etc/presto/kafka来更改主题描述目录。然后,表描述文件应该位于/etc/presto/kafka中。

相关内容

  • 没有找到相关文章

最新更新