このトピックでは、Druid データテーブルの使用方法について説明します。

構文

create table tbName
using druid
options(propertyKey=propertyValue[, propertyKey=propertyValue]*);

設定パラメーター

パラメーター 説明 必須
curator.connect ZooKeeper のホストとポート。例: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 に書き込まれるデータのデータソースの名前。 はい
discovery.path ZooKeeper 内の Druid のディスカバリパス。 デフォルト値:/druid/discovery いいえ
firehouse firehose。 例:druid:firehose:%s はい
rollup.aggregators JSON 形式の Tranquility のロールアップアグリゲーター。 例:
{\"metricsSpec\":[{\"type\":\"count\",\"name\":\"count\"},
                  {\"type\":\"doubleSum\",\"fieldName\":\"value\",\"name\":\"sum\"},
                  {\"type\":\"doubleMin\",\"fieldName\":\"value\",\"name\":\"min\"},
                  {\"type\":\"doubleMax\",\"fieldName\":\"value\",\"name\":\"max\"}]}
ここで、metricsSpec は固定値です。
はい
rollup.dimensions Druid に書き込まれるデータのディメンション。 はい
rollup.query.granularities ロールアップの粒度。 例:minute はい
tuning.window.period Tranquility のチューニングウィンドウ期間。 デフォルト値:PT10M いいえ
tuning.segment.granularity Tranquility のチューニングセグメントの粒度。 デフォルト値:DAY いいえ
tuning.partitions Tranquility のチューニングパーティションの数。 デフォルト値:1 いいえ
tuning.replications Tranquillity のチューニングレプリケーション回数。 デフォルト値:1 いいえ
tuning.warming.period Tranquility のチューニング初期化期間。 デフォルト値:0 いいえ
timestampSpec.column データが Druid に書き込まれるときのタイムスタンプ列の名前。 デフォルト値:timestamp いいえ
timestampSpec.format データが Druid に書き込まれるときのタイムスタンプ列の形式。 デフォルト値:iso いいえ

テーブルスキーマ

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",
firehouse="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");