Druid一种实时数仓,针对的场景和目的,如下比较明确

Druid was originally designed to solve problems around ingesting and exploring large quantities of transactional events (log data).

Our goal is to rapidly compute drill-downs and aggregates(roll-ups) over this data.

这篇文章主要内容是描述Druid的架构,对实时数仓的设计是否有借鉴作用

存储上,

Mysql用来存储元数据配置

Zookeeper用于分布式一致性,选主

Deep Stroage,比如S3,用来放历史数据

节点上,

Real-time Nodes

主要是用于消费和查询实时数据的,

数据会先在内存中建立index,避免oom,到达一定行数阈值,会presist到磁盘,presist的时候会由行存变换到列存格式

一个后台程序会不断的把磁盘上的indexes,进行merge,并且上传到deep storage

下面举了个例子,

何时会flush,presist?何时会merge,上传?

这里还考虑了late data,但是一旦窗口结束,该时间段的数据完成merge和上传,实时节点会拒绝too late 数据

Druid实时节点的scalability和availability,都是依赖kafka来保障的,降低druid本身的设计成本

Historical Nodes

这个节点的设计比较简单了,不涉及写入

只是不变数据segments的加载和查询,为了加载效率,需要实现local cache

Brokers

routers,把查询分解,分别去查询real-time和historical节点

还需要在返回前,merge不同节点的数据,这里merge不是怎么简单的,论文并没有写详细的过程,比如top10,怎么merge

为了提升查询性能,

会增加查询cache,这里只会对historical node的查询结果进行cache,不会cache real-time节点的返回,因为变的太快

Coordinator Nodes

中控节点

管下面这些事,

综合一下,本论文,主要描述冷热数据分离,读写分离的一套实时数仓的架构

Druid: A Real-time Analytical Data Store的更多相关文章

  1. 设置 Ext.data.Store 传参的请求方式

    设置 Ext.data.Store 传参的请求方式 1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var res ...

  2. Ext.data.Store添加动态参数

    多条件查询页面的参数都是动态的,并且我们通常还会有默认加载页面.此时,动态添加参数非常重要,其中baseparam是解决问题的关键. @ 将查询条件定义为一个全局变量 var param_01 = & ...

  3. 转: Ext.data.Store 修改Post请求

    Extjs 4.0版本 var Store = Ext.create('Ext.data.Store', { pageSize: pageSize, model: 'Ext.data.Model名称' ...

  4. 对于Ext.data.Store 介紹 与总结,以及对以前代码的重构与优化

    对于Ext.data.Store 一直不是很了解,不知道他到底是干嘛的有哪些用处,在实际开发中也由于不了解也走了不少弯路, store是一个为Ext器件提供record对象的存储容器,行为和属性都很象 ...

  5. Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式

    1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var resultsPanel = Ext.create('Ex ...

  6. 【ArcGIS】ArcGIS Data Store配置

    一.错误提示 Unable to configure the ArcGIS Data Store with the GIS Server. Please make sure that the GIS ...

  7. sencha touch carousel 扩展 CardList 可绑定data/store

    扩展代码: /* *扩展carousel *通过data,tpl,store配置数据 */ Ext.define('ux.CardList', { extend: 'Ext.carousel.Caro ...

  8. ExtJs Ext.data.Store 处理

    var storeCpye = new Ext.data.GroupingStore({ proxy : new Ext.data.HttpProxy({ url : 'cxgl_cpye.app?d ...

  9. ArcGIS Data Store 初体验

    1. 什么是ArcGIS Data Store? ArcGIS Data Store 是10.3新推出的一个组件,从官方对其定位来说,该组件是用来优化发布托管服务到portal for ArcGIS的 ...

随机推荐

  1. XenServer三类快照

    三种类型的 VM 快照: 1.常规快照:仅创建磁盘快照,可以在所有 VM 类型(包括 Linux VM)上执行.还原快照会重启虚拟机 2.静态快照:生成虚拟机磁盘快照,生成快照前使 VM 静止.仅限于 ...

  2. python基础之对象之间的交互

    面对对象编程之对象之间的交互 这是一个猫狗大战的例子 # 猫类 class Cat: def __init__(self, name, hp, attack): self.name = name # ...

  3. Golang: 创建Web服务

    使用 Go 语言,我们可以轻松创建出 Web 服务,这一点比 Node.js 还要简单,今天就来总结一下 Go 语言中 Web 服务的创建方式. 首先,我们需要引入 net/http 这个包来处理 H ...

  4. Linux Mysql创建新用户并允许远程连接

    第一步 登陆mysql: mysql-u 数据库用户名 -h 数据库IP -p 根据提示 输入数据库密码 第二步: GRANT ALL PRIVILEGES ON *.* TO '自定义用户名'@'% ...

  5. windows系统获取进程的pid号并终止

    ,,,* delims= " %a in ('tasklist ^| findstr "AutodeskDesktopApp.exe"') do (set commitd ...

  6. 浅谈Flask 中的 线程局部变量 request 原理

    2017-11-27 17:25:11 晚橙 阅读数 600更多 分类专栏: Flask python 多线程   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  7. Elasticsearch 日期类型的自动监测,官方文档

    资料 网址 Elasticsearch Reference [7.3] » Mapping » Field datatypes » Date datatype https://www.elastic. ...

  8. SQL语言基础和数据库操作

    Sql语言基础: 核心思想:我们自己构造一段查询的代码,然后添加到语句后,从而得到想要的某些数据. Mysql是一种开源数据库 APP Serv:Apache+php+mysql,相当于phpstud ...

  9. STL str replace

    #include <iostream> #include <string> using namespace std; void main() { string s=" ...

  10. spring MVC核心思想

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...