Kafka - SQL 引擎分享
来源:互联网 发布:linux ssh安装 编辑:程序博客网 时间:2024/05/20 09:49
问题导读:
1.在Kafka中使用SQL的流程是什么?
2.怎样配置Kafka,使得在Kafka中使用SQL?
3.在Kafka中使用SQL有哪些注意事项?1.概述
大多数情况下,我们使用 Kafka 只是作为消息处理。在有些情况下,我们需要多次读取 Kafka 集群中的数据。当然,我们可以通过调用 Kafka 的 API 来完成,但是针对不同的业务需求,我们需要去编写不同的接口,在经过编译,打包,发布等一系列流程。最后才能看到我们预想的结果。那么,我们能不能有一种 简便的方式去实现这一部分功能,通过编写 SQL 的方式,来可视化我们的结果。今天,笔者给大家分享一些心得,通过使用 SQL 的形式来完成这些需求。
2.内容
实现这些功能,其架构和思路并不复杂。这里笔者将整个实现流程,通过一个原理图来呈现。如下图所示:
这里笔者给大家详述一下上图的含义,消息数据源存放与 Kafka 集群当中,开启低阶和高阶两个消费线程,将消费的结果以 RPC 的方式共享出去(即:请求者)。数据共享出去后,回流经到 SQL 引擎处,将内存中的数据翻译成 SQL Tree,这里使用到了 Apache 的 Calcite 项目来承担这一部分工作。然后,我们通过 Thrift 协议来响应 Web Console 的 SQL 请求,最后将结果返回给前端,让其以图表的实行可视化。
3.插件配置
这里,我们需要遵循 Calcite 的 JSON Models,比如,针对 Kafka 集群,我们需要配置一下内容:
[Plain Text] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
{
version: '1.0',
defaultSchema: 'kafka',
schemas: [
{
name: 'kafka',
type: 'custom',
factory: 'cn.smartloli.kafka.visual.engine.KafkaMemorySchemaFactory',
operand: {
database: 'kafka_db'
}
}
]
}
另外,这里最好对表也做一个表述,配置内容如下所示:
[Plain Text] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
[
{
"table":"Kafka",
"schemas":{
"_plat":"varchar",
"_uid":"varchar",
"_tm":"varchar",
"ip":"varchar",
"country":"varchar",
"city":"varchar",
"location":"jsonarray"
}
}
]
4.操作
下面,笔者给大家演示通过 SQL 来操作相关内容。相关截图如下所示:
在查询处,填写相关 SQL 查询语句。点击 Table 按钮,得到如下所示结果:
我们,可以将获取的结果以报表的形式进行导出。
当然,我们可以在 Profile 模块下,浏览查询历史记录和当前正在运行的查询任务。至于其他模块,都属于辅助功能(展示集群信息,Topic 的 Partition 信息等)这里就不多赘述了。
5.总结
分析下来,整体架构和实现的思路都不算太复杂,也不存在太大的难点,需要注意一些实现上的细节,比如消费 API 针对集群消息参数的调整,特别是低阶消费 API,尤为需要注意,其 fetch_size 的大小,以及 offset 是需要我们自己维护的。在使用 Calcite 作为 SQL 树时,我们要遵循其 JSON Model 和标准的 SQL 语法来操作数据源。
0 0
- Kafka - SQL 引擎分享
- Kafka - SQL 引擎分享
- kafka 技术分享
- Kafka技术分享
- KSQL介绍:面向Apache Kafka的开源Streaming SQL引擎
- 【技术分享】规则引擎
- 【分享】DolrPHP模板引擎DolrViews分享
- Flash 3d引擎分享
- Cocos2d-X引擎学习分享
- oracle SQL引擎和PL/SQL引擎
- apache kafka技术分享系列(目录索引)
- apache kafka技术分享系列(目录索引) .
- apache kafka技术分享系列(目录索引)
- apache kafka技术分享系列(目录索引)
- apache kafka技术分享系列(目录索引)
- kafka技术分享系列(目录索引)
- apache kafka技术分享系列(目录索引)
- apache kafka技术分享系列(目录索引)
- 14. 试用vSphere 6(三):安装vCenter 6(独立数据库)之:域控服务器安装与配置
- java函数调用web service
- css实现鼠标悬停图片放大显示
- Gson全解析(中)
- 解决精度损失问题
- Kafka - SQL 引擎分享
- cf - 629D Babaei and Birthday Cake(DP+线段树维护)
- hadoop-2.5.0-cdh5.3.0 HA在线升级
- 操作系统日志分析中常见的搜索条目 20160715
- 卷积理解以及在数字图像处理中的应用
- idea 15注册方法 破解方法 注册码
- Javassist 代码转换
- maven本地仓库引入中央仓库方式
- 计算机视觉基础3——内部参数描述