Druid简单使用
一、Druid服务进程
Historical进程:Historical进程用于处理历史数据的存储和查询(历史数据包括所以已经被committed的流数据)。Historical进程从深度存储(Deep Storage)中下载Segment数据,同时支持对这些数据的查询操作。Historical进程不支持写入操作。
MiddleManager进程:MiddleManager负责将数据导入到集群中。他们负责从外部数据源中读取数据,也负责发布新的Segment。
Broker进程:Broker负责从外部客户端接收查询请求,并把这些请求拆分成子查询后转发给Historical和MiddleManager。当Broker接收到这些子查询的结果疑惑,会合并子查询结果并将结果返回给调用者。终端用户实际上都是和Broker做交互,而不会直接查询Historical和MiddleManager。
Coordinator进程:Coordinator进程负责协调Historical进程。他们负责把Segment分配给特定的Historical进程,以及确保这些Segment在Historical间是负载均衡的。
Overlard进程:Overlard进程负责协调MiddleManager进程,它也是数据导入的控制器,负责将数据导入任务分配给MiddleManager以及协调发布新的Segment数据。
Router进程:Router进程是为Broker,Overlard, Coordinator提供统一网关服务的可选进程。用户也可以不适用Router而将请求直接发送给Broker,Overlard,Coordinator。
二、Druid管理界面
Druid提供管理UI,访问地址http://{routerNodeIp}:8888/,在该管理服务中可以对Druid进行数据的批量摄入、实时数据配置、数据查询、数据摄入任务管理、datasource管理等操作
 
Coordinator控制界面: http://{Coordinator NodeIp}:8081/
三、Druid数据摄入
Druid的数据摄入可以使接入流式数据和静态数据两种。Druid的数据摄取方式也有两种,分别是Push(推送)和Pull(拉取)。例如:hdfs中的数据可以采用批量数据Push的方式,而kafka中的流式数据可以采用Pull
流式数据
1.通过实时节点以Pull方式摄取; 
创建pull监控 
curl -X POST -H 'Content-Type: application/json' -d @supervisor-spec.json http://OVERLORD_IP:PORT/druid/indexer/v1/supervisor
2.通过索引服务以Push方式摄取 
创建push规则 
curl -X POST -H ‘Content-Type:application/json’ -d @my-index-task.json http://OVERLORD_IP:PORT/druid/indexer/v1/task
数据push,例如:
curl -X POST -H 'Content-Type:application/json' -d '[{"timestamp":"2016-07-13","user":"张三","type":"浏览"}]'  http://PEON_IP:PORT/druid/worker/v1/chat/tableName/push-events/
静态数据 
1.以索引服务方式摄取 
druid通过索引服务方式批量摄取数据,需要通过统治节点提交一个索引任务 
curl -X POST -H ‘Content-Type:application/json’ -d @my-index-task.json http://OVERLORD_IP:PORT/druid/indexer/v1/task
2.以hadoop方式摄取 
Druid Hadoop Index Job 支持从HDFS上读取数据,并摄入到Druid系统中,该方式需求POST请求统治节点启动一个Hadoop Index Job 
curl -X POST -H ‘Content-Type:application/json’ -d @index-hadoop-task.json http://OVERLORD_IP:PORT/druid/indexer/v1/task
注:其中关于各数据格式定义json,可以参考Druid安装包中quickstart/tutorial目录,该目录下包括了各种方式的数据格式定义及样例数据
四、Druid数据查询
1.原生语言查询
接口类型:HTTP REST 、POST
查询地址: http://BROKER:8082/druid/v2/pretty
语句格式:

{
"queryType": "groupBy",
"dataSource": {...},"columns": [],
"filter":{...},"intervals": {...},
"aggregations"{...},
...
}

2.SQL查询
接口类型:HTTP REST 、POST
查询地址: http://BROKER:8082/druid/v2/sql
语句格式:

{
"query":"SELECT COUNT(*) AS TheCount FROM data_source"
}

注:1.2两种查询方式均可以使用管理界面测试 ,也可以直接使用postman工具,或者curl命令
3.JDBC
依赖驱动: Avatica JDBC driver
连接地址: 
jdbc:avatica:remote:url=http://BROKER:8082/druid/v2/sql/avatica/

String url = "jdbc:avatica:remote:url=http://192.168.252.110:8082/druid/v2/sql/avatica/";Properties connectionProperties = new Properties();String query = "SELECT cityName as cityName,sum(\"count\") as s FROM \"wikiticker-2015-09-12-sampled\" GROUP BY cityName";try (Connection connection = DriverManager.getConnection(url, connectionProperties)) {try (final Statement statement = connection.createStatement();final ResultSet resultSet = statement.executeQuery(query)) {System.out.println("cityName\t\t\tcount");long s = 0;while (resultSet.next()) {String cityName = resultSet.getString(1);long count = resultSet.getLong(2);System.out.println(cityName+"\t\t\t"+count);s++;}System.out.println("total:"+s);}} catch (SQLException e) {e.printStackTrace();}

注意:经个人多次测试,在sql语句上datasource即表名上需要带上双引号(2 SQL查询也需要),也没有找到原因,目前官方文档上也未明确强调说明

Druid(Druid.io)简单使用相关推荐

  1. socket.io简单说明及在线抽奖demo

    socket.io简单说明及在线抽奖demo socket.io 简介 Socket.IO可以实现实时双向的基于事件的通信. 它适用于各种平台,浏览器或设备,也同样注重可靠性和速度. socket.i ...

  2. C3P0替换成阿里Druid的最简单方法

    C3P0替换成阿里Druid 原有的c3p0 兼容c3p0的Druid 替换完成 , 其它的啥都不用动!!!!! 原有的c3p0 class="com.mchange.v2.c3p0.Com ...

  3. java 8 io_Java IO8:IO简单总结

    字节流.字符流继承关系 前几篇文章讲解了字节流.字符流的使用,不过Java提供给用户的流类远不止此,限于篇幅原因,没办法一一讲解,而且也没有必要一一讲解,就像我在写博客的时候多次提到的,有问题的时候学 ...

  4. golang的缓存io简单的使用

    地址:https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter01/01.4. ...

  5. python123.io简单编程题合集

    有些代码觉得自己写得真是很丑陋啊 第K序元素查找 lt = eval(input("")) n = eval(input("")) lt = sorted(lt ...

  6. druid.io 海量实时OLAP数据仓库 (翻译+总结) (1)——分析框架如hive或者redshift(MPPDB)、ES等...

    介绍 我是NDPmedia公司的大数据OLAP的资深高级工程师, 专注于OLAP领域, 现将一个成熟的可靠的高性能的海量实时OLAP数据仓库介绍给大家: druid.io NDPmedia在2014年 ...

  7. druid.io 海量实时OLAP数据仓库 (翻译+总结) (1)

    介绍 我是NDPmedia公司的大数据OLAP的资深高级工程师, 专注于OLAP领域, 现将一个成熟的可靠的高性能的海量实时OLAP数据仓库介绍给大家: druid.io NDPmedia在2014年 ...

  8. JDBC与Druid简单介绍及Druid与MyBatis连接数据库

    序言 java程序与数据建立连接,首先要从jdbc说起,然后直接上阿里认为宇宙最好的数据库连接池druid,然后再说上层程序对象与数据源映射关联关系的orm-mybatis. JDBC介绍 JDBC( ...

  9. druid.io mysql 配置_druid.io 使用mysql存储metadata overlord启动出错

    这是druid.io批量导入数据时出现的问题,当启动overlord节点时,运行的命令如下: java -Xmx2g -Duser.timezone=UTC -Dfile.encoding=UTF-8 ...

  10. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    首页 Android Java 服务器 标签云 作品 关于 赞助列表  <a href="https://github.com/RayeWang" class="f ...

最新文章

  1. GS01创建信息集及其他GROUP在ABAP程序中的调用方法
  2. Visual Studio 2010授权修改
  3. 面向非易失内存的MPI-IO接口优化
  4. cloudflare 批量修改域名DNS
  5. django 如何写model
  6. EMC -- DFS篇(Documentum Foundation Services)
  7. Qt4_子类化QTableWidgetItem
  8. English trip EM2-PE 5B Presentation yourself favorite food Teacher:Ashley
  9. idea java 快捷键_图示Javahtml5开发中IDEA的一些常用默认快捷键
  10. 常用网站网址、名称、logo列表
  11. 关于SWAT模型的一些原理(二)
  12. 360电脑网速怎么测试软件,win7使用360安全卫士测试网速的方法 win7攻略
  13. 苹果 2019 卖什么?新 iPhone 值不值得买?
  14. c语言常用延时程序,新手常用单片机延时程序
  15. 移植u-boot v2018
  16. SIM7600透传模式
  17. 小米系硬件查询保修日期
  18. AI研究者的方法论和工具箱|微软大牛独家「AI课程/资源/数据」
  19. Kaggle(Gun Violence Data)—美国枪支暴力事件分析(1)和(2)
  20. java后台图片大小kb查看_java 根据图片地址获取到图片的大小,单位kb或者Mb

热门文章

  1. 多维标度法(MDS,Multidimensional Scaling)及普氏分析(Procrustes Analysis)在人体姿态关节点上的简单示例(python)
  2. 常用自媒体工具网站大全,收集整理32个工具分享!
  3. 契约锁助力大型能源组织“产-运-储-销-交易”文件电子签
  4. torch dataloader 数据并行_PyTorch Parallel Training(单机多卡并行、混合精度、同步BN训练指南文档)
  5. 《深入浅出SQL》问答录
  6. 理工男学计算机,案例分享 | 一名“理工男”的春天
  7. python爬虫爬取虎牙数据(简单利用requests库以及Beautifulsoup)
  8. 让chrome浏览器变成在线编辑器
  9. idea上Run,Debug为灰色,执行main方法,单元测试run、debug点击后均没反应,像假死状态的解决方法
  10. wx-sideslip:类似 QQ 通讯录侧滑