druid数据摄入

数据摄入

Druid的数据摄入有两种方式,一种是流式数据源,一种是静态数据源

数据源种类

静态数据源:数据已经生产完毕,不会有新数据产生的数据源,静态数据通常表现为离线数据,静态服务可以通过实时节点摄入,也可以通过索引服务启动一个任务摄入。

流式数据源:指的是持续不断地生产数据的数据源。如日志,消息队列等。对于流式数据的摄取,Druid提供了两种方法,分别是Push(推送)和Pull(拉取)。采用pull方式摄取数据需要启动一个实时节点(realtimeNode),通过不同的firehose摄入不同的流式数据。采用Push方式摄取数据,需要使用Druid的索引服务,索引服务会启动一个http服务,通过调用这个Http服务推送数据到Druid系统。

静态数据摄取

数据存放在hdfs上。我们通过Druid获取hdfs数据,配置json文件。通过索引服务将数据摄入到Druid中。

1.准备数据,存为device_datas.dat

数据格式:

YY,2018-10-15T08:13:24.001+08:00,3.855
FI,2018-10-15T08:13:25.001+08:00,2.436
RY,2018-10-15T08:13:23.001+08:00,3.024
HB,2018-10-15T08:13:23.001+08:00,4.294
PN,2018-10-15T08:13:26.001+08:00,1.997
PV,2018-10-14T08:13:23.001+08:00,3.604

数据字段:dev_name,time,cost

存放到hdfs://beh/druid/test/device_datas.dat 中

2.准备json文件。存为 device.json

{
    "type": "index_hadoop",
    "spec": {
        "ioConfig": {
            "type": "hadoop",
            "inputSpec": {
                "type": "static",
                "paths": "/druid/test/device_datas.dat"
            }
        },
        "dataSchema": {
            "dataSource": "hadoop_test",
            "granularitySpec": {
                "type": "uniform",
                "segmentGranularity": "day",
                "queryGranularity": "none",
                "intervals": ["2018-10-14/2018-10-15"]
            },
            "parser": {
                "type": "hadoopyString",
                "parseSpec": {
                    "format": "csv",
                    "columns": ["dev_name", "time", "cost"],
                    "dimensionsSpec": {
                        "dimensions": [
                            "dev_name"
                        ]
                    },
                    "timestampSpec": {
                        "format": "auto",
                        "column": "time"
                    }
                }
            },
            "metricsSpec": [{
                    "name": "count",
                    "type": "count"
                },
                {
                    "name": "sumCost",
                    "type": "doubleSum",
                    "fieldName": "cost"
                }
            ]
        },
        "tuningConfig": {
            "type": "hadoop",
            "partitionsSpec": {
                "type": "hashed",
                "targetPartitionSize": 5000000
            },
            "jobProperties": {
                "mapreduce.job.user.classpath.first": true,
                "mapreduce.map.java.opts"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值