龙空技术网

Apache Druid在大数据栈的角色

52Data 94

前言:

此时看官们对“apache用户”大致比较看重,同学们都需要分析一些“apache用户”的相关资讯。那么小编也在网络上搜集了一些有关“apache用户””的相关资讯,希望各位老铁们能喜欢,朋友们一起来学习一下吧!

Apache Druid,一款实时分析性数据库

指标计算的例子

首先,看个例子。头条号后台文章流量和收益指标。

其中,实时计算或者流计算的指标,如:展现量,阅读量,点击率等。这些指标是实时或者近实时就能看到的。实时的可以走kafka+flink+mysql;近实时的,可以走微批次计算,如kafka+kudu+presto/trino+mysql。

离线计算的指标,如:收益类(创作收益,基础收益,补贴收益),粉丝变化,消费分析,用户画像等,这些指标要在作品发布次日才可以看到查看数据。那么可以走,kafka+hadoop+spark/hive/presto/trino+mysql,即在hadoop上再架设一个大数据计算引擎,用于指标计算。

Druid与大数据计算SQL引擎的区别

spark/hive/presto/trino引擎只负责计算,数据是存储在hadoop上的,这些引擎本身不负责数据存储。但Druid作为一个数据库,是需要将原始数据写入并存储的。Druid存储模块会对输入的原始数据建立索引,从而能高效的支持分析型查询。Druid管这些索引叫做“段”,查询只需读取这些段即可,无需再读取原始数据。

因此要想使用Druid,首先要将原始数据导入Druid。

Druid在大数据栈的用处

Druid支持两种数据导入方式,一种是stream(导入即可见),一种是batch(也是导入即可见,但是batch的模式,数据时效性不高)。

stream数据管道如,原始数据 → kafka → 流处理器(ETL)→ kafka → Apache Druid → 终端用户

batch数据管道如,原始数据 → kafka → HDFS → ETL处理(spark/hive/presto/trino等) → Apache Druid → 终端用户

Druid对stream和batch两种数据导入方式都提供了开箱即用的支持。

标签: #apache用户