このトピックでは、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 は固定値です。
|
はい |
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");