文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

apache druid 实时加载kafka 中的数据(一)

2016-08-16 02:07

关注

简介

apache druid 是分布式列存储的 OLAP 框架。还是一个时间序列数据库。本篇文章主要是druid 在kafka 加载数据的配置。由于druid 升级情况太快,本人的环境还是在0.13,主要改动方面还是UI,新的版本在UI方面更适合新手入门。

文章如有帮助,请关注微信公共号。

image/20191117/2180795b57ab6fbd1673371230364131

最终使用druid时,是0.9版本,当时在kafka加载数据推荐的方式是两种

Tranquility

是用于将流实时推送到Druid的工具包。是一个独立,需要单独下载。

image/20191117/a2a764720080c55aba5f0ffcb680ccaf

** 其特点**

无缝地处理分区,复制,服务发现和架构过渡,而无需停机。集成了http server,Samza,Spark ,Storm,Flink 等工具。

可以自由的控制向druid,主动发送数据。

** 劣势**

本身具有时间窗,超过时间窗的数据直接丢弃。

版本落后,由于没有官方组织维护,目前版本只是兼容值0.9.2,后面druid升级后,Tranquility未及时升级,有些新的api 无法适配。

kafka index service

这是druid 自身携带的扩展插件,使用时,需要在common.runtime.properties 文件中的属性 druid.extensions.loadList 添加druid-kafka-indexing-service。

**  其特点**

支持实时查询按时间分segment,非实追加到对应时间的segment 。

通过算法把Peon分配到 不同的【 Middle Managers】上实现分布式

加大对应kafka的topic的partition数量 加大taskCount的值,产生更多的Peon

创建 supervisor

f9bd98cf3eee4087a1224404338e75af.png

0754ffcee0e6467795d91c46513b3e78.png

上面是一个完整的supervisor的内容,主要包含type,dataSchema,tuningConfig,ioConfig 四个部分

标记类型,supervisor  的类型 就是kafka.

数据库的配置,主要包含dataSource,parser,metricsSpec,granularitySpec

dataSource

druid的数据库名称。

parser

配置与解析数据。简单理解就是kafka中的数据与druid存储之间的关系映射。主要包含以下配置

timestampSpec

配置处于的位置 dataSchema->parser->timestampSpec

druid 本身是时间序列数据库,故此时间就是数据的主键。由于druid 在 0.9后,已经不支持设置时区了,时间都是采用的utc格式。druid查询时,可以设置时区。包括一些roll-up操作都是按照utc时间进行。如有必须需改动源码。

dimensionsSpec

位置:dataSchema->parser->dimensionsSpec

维度。数据库需要存储的字段,需要与kafka中的对应。

dimensions

是一个数组类型,默认字段的类型都是string

可以设置字段的类型,例如{ "type": "long", "name": "userId" }

metricsSpec

位置:dataSchema->metricsSpec

度量。此值roll-up 启用是才有意义。

`{      "name": "theta_customer_id",

"type": "thetaSketch",

"fieldName": "customer_id"
           } `

name: druid中字段的名称。

type:指标类型。thetaSketch 去重。还支持doubleSum,longSum,doubleMin,doubleMax 等聚合类型。

fieldName:kafka中 属性的名称

granularitySpec

位置:      dataSchema->granularitySpec

segmentGranularity: Segment粒度(SegmentGranularity)表示每一个实时索引任务中产生的Segment所涵盖的时间范围。

queryGranularity:查询粒度。例如 {"queryGranularity":"DAY"} 查询的最小粒度就是DAY,经过roll-up后,维度完全一样的数据,一天范围内将聚合为一条数据。

调优相关的配置。

配置一个segment大小。

调整压缩算法。

"ioConfig": {        

"topic": "com.test",       

 "replicas": 1,         "taskCount": 1,     

   "taskDuration": "PT3600S",     

   "consumerProperties": {        

   "bootstrap.servers": "10.0.0.1:9096,10.0.0.1:9096"    

   },     

   "completionTimeout": "PT3600S"  

 }

提交supervisor

提交至overlord节点。

2f49e0f1fe694035a9e06f017ff6db08.png

新版中出现界面配置

第一种,根据界面的配置向导来加载kafka数据

访问:8888  端口

image/20191117/58c59c6b6e40848307f379ebc3ffb148

image/20191117/36f69bc8e54b7f5d02bd0350ae602104

image/20191117/c5c5fb2f1ae5b8b763b2f3fe16ddc426

一直按照向导配置,就可以自动生成supervisor的配置 很方便。

第二种,通过页面 提供的Submit supervisor提交 相应的json文件

image/20191117/ad5be9a4216eaa6182307dd8f4569979

总结

简单介绍了下supervisor  重点配置的具体含义,由于篇幅问题,详细的配置还需要去官网文档中查看。本文的目的就是通过个人使用 kafka index service时一些新得,帮助新手能快速跑通第一个druid实例。

文章如有帮助,请关注微信公共号。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯