【Druid】(六)Apache Druid 数据摄入1

本文涉及的产品
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 【Druid】(六)Apache Druid 数据摄入1

文章目录


一、数据格式


二、配置

2.1 DataSchema

2.1.1 parser

2.1.2 metricsSpec

2.1.3 GranularitySpec

2.2 ioConfig

2.3 tuningConfig


三、从 Hadoop 加载数据

3.1 加载数据

3.2 查询数据


四、从 kafka 加载数据

4.1 准备kafka

4.2 启动索引服务

4.3 加载历史数据

4.4 加载实时数据

4.5 加载自定义kafka 主题数据


一、数据格式


  1. 摄入规范化数据:JSON、CSV、TSV


  1. 自定义格式


  1. 其他格式


二、配置


主要是摄入的规则 Ingestion Spec


Ingestion Spec(数据格式描述)是Druid对要索引数据的格式以及如何索引该数据格式的一个统一描述,它是一个JSON文件,一般由三部分组成。


image.png

{
"dataSchema" : {...},
"ioConfig" : {...},
"tuningConfig" : {...}
}


2.1 DataSchema


第一部分的dataSchema描述了数据的格式,如何解析该数据,典型结构如下。


{
    "dataSource": <name_of_dataSource>,
    "parser": {
        "type": <>,
        "parseSpec": {
            "format": <>,
            "timestampSpec": {},
            "dimensionsSpec": {}
        }
    },
    "metricsSpec": {},
    "granularitySpec": {}
}

image.png

2.1.1 parser


parser部分决定了数据如何被正确地解析,metricsSpec定义了数据如何被聚集计算,granularitySpec定义了数据分片的粒度、查询的粒度。


对于parser,type有两个选项:string和hadoopString,后者用于Hadoop索引的 job。parseSpec是数据格式解析的具体定义。


(1)string parser

image.png


image.png

parseSpec 两个功能:


String Parser 用parseSpec 判定将要处理rows 的数据格式( JSON, CSV, TSV)

所有的Parsers 用parseSpec 判定将要处理rows 的timestamp 和dimensionsAll


JSON ParseSpec


image.png


CSV ParseSpec

image.png


image.pngimage.png

TSV ParseSpec

image.png


image.png

对于不同的数据格式,可能还有额外的parseSpec选项。


TimestampSpec

image.png


image.png

DimensionsSpec


image.png


2.1.2 metricsSpec


metricsSpec是一个JSON对象数组,定义了一些聚合器(aggregators)。聚合器通常有如下的结构。

{
    "type": <type>,
    "name": <output_name>,
    "fieldName": <metric_name>
}

image.png

2.1.3 GranularitySpec


聚合支持两种聚合方式:uniform和arbitrary,前者以一个固定的时间间隔聚合数据,后者尽量保证每个segments大小一致,时间间隔是不固定的。目前uniform是默认选项。


image.png

"dataSchema" : {
  "dataSource" : "wikipedia",
  "parser" : {
  "type" : "string",
  "parseSpec" : {
    "format" : "json",
    "dimensionsSpec" : {
    "dimensions" : [
      "channel",
      "cityName",
      "comment",
      "countryIsoCode",
      "countryName",
      "isAnonymous",
      "isMinor",
      "isNew",
      "isRobot",
      "isUnpatrolled",
      "metroCode",
      "namespace",
      "page",
      "regionIsoCode",
      "regionName",
      "user",
      { "name" : "commentLength", "type" : "long" },
      { "name" : "deltaBucket", "type" : "long" },
      "flags",
      "diffUrl",
      { "name": "added", "type": "long" },
      { "name": "deleted", "type": "long" },
      { "name": "delta", "type": "long" }
    ]
    },
    "timestampSpec": {
    "column": "timestamp",
    "format": "iso"
    }
  }
  },
  "metricsSpec" : [],
  "granularitySpec" : {
  "type" : "uniform",
  "segmentGranularity" : "day",
  "queryGranularity" : "none",
  "intervals" : ["2016-06-27/2016-06-28"],
  "rollup" : false
  }
}


2.2 ioConfig


ioConfig 指明了真正具体的数据源


image.png


不同的firehose 的格式不太一致,以kafka 为例:

{
  firehose : {
  consumerProps : {
    auto.commit.enable : false
    auto.offset.reset : largest
    fetch.message.max.bytes : 1048586
    group.id : druid-example
    zookeeper.connect : localhost:2181
    zookeeper.connect.timeout.ms : 15000
    zookeeper.session.timeout.ms : 15000
    zookeeper.sync.time.ms : 5000
  },
  feed : wikipedia
  type : kafka-0.8
  }
}


ioConfig 的案例:


"ioConfig" : {
  "type" : "index",
  "firehose" : {
  "type" : "local",
  "baseDir" : "quickstart/",
  "filter" : "wikipedia-2016-06-27-sampled.json"
  },
  "appendToExisting" : false
}


2.3 tuningConfig

tuningConfig 这部分配置是优化数据输入的过程


image.png

"tuningConfig" : {
  "type" : "index",
  "targetPartitionSize" : 5000000,
  "maxRowsInMemory" : 25000,
  "forceExtendableShardSpecs" : true
}


目录
相关文章
|
7月前
|
存储 人工智能 数据处理
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
秉承“以场景驱动创新” 的核心理念,持续深耕三大核心场景的关键能力,并对大模型 GenAI 场景的融合应用进行重点投入,为智能时代构建实时、高效、统一的数据底座。
403 10
Apache Doris 2025 Roadmap:构建 GenAI 时代实时高效统一的数据底座
|
9月前
|
存储 运维 监控
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
日志数据已成为企业洞察系统状态、监控网络安全及分析业务动态的宝贵资源。网易云音乐引入 Apache Doris 作为日志库新方案,替换了 ClickHouse。解决了 ClickHouse 运维复杂、不支持倒排索引的问题。目前已经稳定运行 3 个季度,规模达到 50 台服务器, 倒排索引将全文检索性能提升7倍,2PB 数据,每天新增日志量超过万亿条,峰值写入吞吐 6GB/s 。
618 5
从 ClickHouse 到 Apache Doris:在网易云音乐日增万亿日志数据场景下的落地
|
9月前
|
存储 SQL 数据挖掘
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
863 1
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
|
消息中间件 存储 druid
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
206 3
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
257 3
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
308 2
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
173 2
|
SQL 消息中间件 大数据
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
307 1
|
SQL 大数据 Apache
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
194 1
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
210 1

推荐镜像

更多
下一篇
oss云网关配置