本文介绍如何使用Druid数据源进行数据分析或者交互式开发。
建表语法
create table tbName
using druid
options(propertyKey=propertyValue[, propertyKey=propertyValue]*);
Table Schema
创建Druid数据表时,无需显式地定义表的字段信息,示例如下。
create table druid_test_table
using druid
options(
curator.connect="${ZooKeeper-host}:${ZooKeeper-port}}",
index.service="druid/overlord",
data.source="test_source",
discovery.path="/druid/discovery",
firehose="druid:firehose:%s",
rollup.aggregators="{\"metricsSpec\":[{\"type\":\"count\",\"name\":\"count\"},
{\"type\":\"doubleSum\",\"fieldName\":\"value\",\"name\":\"sum\"},
{\"type\":\"doubleMin\",\"fieldName\":\"value\",\"name\":\"min\"},
{\"type\":\"doubleMax\",\"fieldName\":\"value\",\"name\":\"max\"}]}",
rollup.dimensions="timestamp,metric,userId",
rollup.query.granularities="minute",
tuning.segment.granularity="FIVE_MINUTE",
tuning.window.period="PT5M",
timestampSpec.column="timestamp",
timestampSpec.format="posix");
配置参数说明
参数 | 描述 | 是否必选 |
---|---|---|
curator.connect | ZooKeeper的Host,例如emr-header-1:2181。 | 是 |
curator.max.retries | ZooKeeper连接失败后的重试次数,默认值为5。 | 否 |
curator.retry.base.sleep | ZooKeeper连接失败后重试的间隔初始值,默认值为100,单位毫秒。 | 否 |
curator.retry.max.sleep | ZooKeeper连接失败后重试的间隔最大值,默认值为3000,单位毫秒。 | 否 |
index.service | 例如druid或overlord。 | 是 |
data.source | 写入Druid的data source。 | 是 |
discovery.path | 默认值为druid或discovery。 | 否 |
firehose | 例如druid:firehose:%s 。
|
是 |
rollup.aggregators | tranquility聚合器,JSON格式,示例如下。 其中,metricsSpec 为固定值。
|
是 |
rollup.dimensions | 写入Druid的维度。 | 是 |
rollup.query.granularities | 聚合粒度,例如minute。 | 是 |
tuning.window.period | 时间窗大小,默认值为PT10M。 | 否 |
tuning.segment.granularity | segment粒度,默认值为DAY。 | 否 |
tuning.partitions | 分区数量,默认值为1。 | 否 |
tuning.replications | 副本数,默认值为1。 | 否 |
timestampSpec.column | 写入Druid时的timestamp列名,默认值为timestamp。 | 否 |
timestampSpec.format | 写入Druid时的timestamp列名的格式,默认值为iso。 | 否 |