Druid支持流式(实时)和基于文件(批量)的数据提取方式。最常用的配置是:
批处理、流式混合模式
通过修改JSON配置文件,读取存放在HDFS或者本地的文件然后提交索引任务,加载到Druid。出于篇幅限制,放上官网翻译教程Demo。
输入命令向Druid提交任务。
curl -X
'POST'-H
'Content-Type:application/json'-d @quickstart/wikiticker-index.json localhost:8090/druid/indexer/v1/task
如果成功提交会生成:
{"task":
"index_hadoop_wikipedia_2013-10-09T21:30:32.802Z"}
数据加载完后可以在 http://localhost:8090/console.html.看到数据已经完全加载进去 了
本文以kafka为例演示流数据如何加载。
启动kafka
执行如下指令启动kafka broker:
./bin/kafka-server-start.sh config/server.properties
创建一个名称为metrics的topic用来接收数据:
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1
发送示例数据
下面就可以开始通过console producer向kafka对应的topic发送数据了!
在Druid目录下执行如下指令:
bin/generate-example-metrics
在kafka目录下执行:
./bin/kafka-console-producer.sh --broker-
listlocalhost:
9092--topic metrics
现在kafka-console-producer就开始等待数据的输入了,复制刚生成的示例数据并粘贴到kafka-console-producer控制台终端,回车确认
按Ctrl+D退出,数据查询可以参考后面,当然也可以参考下文去加载自定义数据集
加载自定义kafka数据集
目前为止,我们已经按照Druid发布版本中的数据提取规范,将数据从kafka加载到了Druid。每一个数据提取规范都是为了特定的数据集设计的,也可以通过自定义提取规范来加载自定义数据。
自定义数据提取规范,可以按需修改conf-quickstart/tranquility/kafka.json配置文件
例子:Demo
直接查询
Druid支持一系列基于JSON的查询。我们在quickstart / wikiticker-top-pages.json中包含了一个示例topN查询,它将在此数据集中找到编辑最多的文章:
curl -L -H
'Content-Type: application/json'-XPOST --data-binary @quickstart/wikiticker-top-pages.json http://localhost:8082/druid/v2/?pretty
可视化查询
通过Imply安装的pivot查询
SQL查询或者其他库
本文使用Imply套件安装,它包括Druid组件,实时数据写入服务(tranquility),SQL查询组件,图形化数据展示页面(Pivot),zookeeper协调服务。
在安装之前需要先安装node,
node下载地址:https://nodejs.org/en/download/
imply下载地址:http://imply.io/download
node安装完成后使用下列命令检查:
node –version
目录说明如下:
- bin/ - run scripts for included software.
- conf/ - template configurations for a clustered setup.
- conf-quickstart/* - configurations for the single-machine quickstart.
- dist/ - all included software.
- quickstart/ - files related to the single-machine quickstart.
启动服务
bin/supervise -c conf/supervise/quickstart.conf
服务停止与重启
bin/service –down
Bin/service –restart $(服务名称)
导入测试数据
bin/post-index-task --file quickstart/ wikipedia-index.json
实时导入:
借助tranquility
bin/generate-example-metrics | curl –XPOST –H’Content-Type:application/json’ –data-binary @- http://localhost:8200/v1/post/metrics
返回结果:{“result”:{“received”:25,”sent”:25}}
可视化控制台
通过HTTP Post请求查询,请求TopN信息查询,HTTP查询结果也是Json.
通过PlySL利用SQL查询