druid上传数据index文件配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了druid上传数据index文件配置相关的知识,希望对你有一定的参考价值。
参考技术A (1)type:表示上传的方式,本地文件上传使用index,hdfs文件上传使用index_hadoop。(2)context(可选):用于配置一些运行参数,比如可以设置上传csv时候是否包含表头行
(3)dataSource:数据源名称,用于设置上传数据之后的表名称。
(4)spec:用于设置数据的具体配置以及转换方式,重点介绍
包含了三个字段:
(2.2.1)format:可以为csv,json,tsv,javascript、timeAndDims等
(2.2.2)timestampSpec:包含column以及format两个参数,column必选,用于指定时间戳对应的列。format用于指定时间格式,可以使用iso、millis、posix、zuto,默认为auto。
(2.2.3)columns:用于配置源文件中应该包含的所有列的列名
(2.2.4)dimensionsSpec用于指定维度列。dimensions用于指定所有的列;dimensionExclusion可选,用于指定不需要的数据,默认为空;spatialDimensions可选,用于指定列的空间限制,默认为空。
如果字段为String,那么直接列出,如果为其他类型如long/double等,需要使用"type":"long","name":"字段名称" 单独列出,注意:配置时间戳的列不需要在dimensions中列出。
(3.1)type:默认为type=uniform,建议设置为uniform或arbitrary(尝试创建大小相等的字段)
(3.2)segmentGranularity:默认为day,用来确定每个segment包含的时间戳的范围,可以为 "SECOND" ... "MINUTE" ... "HOUR" ... "DAY" ... "DOW" ... "DOY" ... "WEEK" ... "MONTH" ... "QUARTER" ... "YEAR" ... "EPOCH" ... "DECADE" ... "CENTURY" ... "MILLENNIUM" ... 等。
(3.3)queryGranularity:默认为None,允许查询的时间粒度,单位与segmentGranularity相同,如果为None那么允许以任意时间粒度进行查询。
(3.4)rollup:是否使用预计算算法,默认为true,推荐true,比较快。
(3.5)intervals:使用时间段来将数据源进行限制。只有时间段内的数据可以上传。
type可以为:count、longSum、doubleSum、doubleMin\doubleMax、longMin\longMax、doubleFirst\doubleLast、longFirst\longLast
除count外其他都需要指定name和fieldName两个参数,name表示最后输出的,也就是在表中体现的名称,而fieldName则代表源数据中的列名。
详细用法: metricsSpec-Aggregations官网详细解释
(2.1)
支持批量上传数据,路径指定到文件夹即可。
(2.2)当设置type为“granularity”时候,则需要根据时间戳使用路径格式将数据导入目录中。
Segment会给予时间戳进行分区,并根据其他类型进一步分区,druid支持hashed(基于每行所有维度的哈希值)和dimension(基于单个维度的范围)来进行分区。为了让druid在重查询负载下运行良好,对于段文件大小的推荐在300Mb到700mb之间,可以使用partitionsSpec来调整大小。
(2.1)hashed分区
hashed分区首先会选择多个Segment,然后根据每行数据所有列的哈希值对这些Segment进行分区,Segment的数量是输入数据集的基数以及目标分区大小自动确定的。
(2.2)Only-dimension单维度分区
选择作为分区指标的维度列,然后将该维度分隔成连续的不同的分区,每个分区都会包含该维度值在该范围内的所有行。默认情况下使用的维度都是自动指定的。
type:要分区的类型,dimension
targetPartitionSize(必须):包含在分区中的目标行数,应该在500M-1G
maxPartitionSize(可选):分区中包括的最大行数,默认为比targetPartitionSize大50%。
partitionDemension(可选),要分区的维度,为空时自动选择
assumeGrouped(可选):如果数据源已经按照时间和维度分组了,该选项将会提高加载数据的速度,但是如果没有那么会选择次优分区。
其中的index.json便是需要配置的index文件
本地导入csv格式数据的 task文件示例
看不明白的稍微加工一下: 使用json在线解析层次更加清晰
导入hdfs中的csv格式文件
官网传送门:
使用hadoop进行批量离线导入-index文件的编写规范
Druid-Druid数据源加密数据库密码配置
1.数据库配置文件添加配置
<property name="filter" value="config">
<property name="connectionProperties" value="config.decrypt=true"/>
2.使用druid.jar 命令生成密码加密串
Java -cp druid.jar com.alibaba.druid.filter.config.ConfigTools 【原来密码】
以上是关于druid上传数据index文件配置的主要内容,如果未能解决你的问题,请参考以下文章
springboot---整合druid连接池---连接oracle数据库---整合mybatis---整合thymeleaf---日志配置