6.4 リアルタイム・インタラクティブ・アナリティクスのためのDruid時系列データベースとの統合

キューブは、複数のディメンションでデータを迅速に分析するのに役立つデータ構造です。GoldenGate Stream Analyticsのキューブは、分散型のインメモリーOLAPデータ・ストアであるDruidによって強化されています。

パイプラインは、処理されたデータをKafkaストリームに出力し、Kafkaストリームはキューブにフィードします。

キューブは次の目的で使用できます:
  • 履歴データのインタラクティブ分析
  • 単変量、二変量および多変量データの分析
  • 30個の豊富なビジュアライゼーションのセットを使用した履歴データの探索。これらのビジュアライゼーションは、単純な表、線、棒からサンキー、箱ひげ図、マップなどの高度なビジュアライゼーションまで様々です。キューブ探索の結果を保存して、ビジネス・ユーザーの運用上および戦略的な分析ニーズのためにダッシュボードで使用できます。

6.4.1 Druidへの接続の作成

Druidへの接続を作成するには:

  1. 「カタログ」ページで、「新規アイテムの作成」をクリックします。
  2. マウスを「接続」の上に置き、サブメニューからDruidを選択します。
  3. 「タイプ・プロパティ」画面で、次の詳細を入力します:
    • 名前: 接続の一意の名前を入力します。これは必須フィールドです。
    • 表示名: 接続の表示名を入力します。空のままにすると、「名前」フィールドの値がコピーされます。
    • 説明
    • タグ
    • 接続タイプ: 選択した接続が表示されます。
  4. 「次」をクリックします。
  5. 「接続の詳細」画面で、次の詳細を入力します:
    • Zookeeper: zookeeper URLを入力します。

  6. 「接続のテスト」をクリックして、接続が正常に作成されていることを確認します。
  7. 「保存」をクリックします。

6.4.2 キューブの作成

キューブを作成する前に、Druidが実行されている必要があります。http://druid.io/downloads.htmlにアクセスし、Druidをダウンロードしてインストールします。

キューブを作成するには:

  1. 「カタログ」ページで、「新規アイテムの作成」をクリックし、ドロップダウン・リストから「キューブ」を選択します。
  2. 「タイプ・プロパティ」画面で、次の詳細を入力します:
    • 名前
    • 説明
    • タグ
    • ソース・タイプ: ドロップダウン・リストから「パブリッシュされたパイプライン」を選択します。
  3. 「次」をクリックします。
  4. 「収集の詳細」画面で、次の詳細を入力します:
    • 接続: ドロップダウン・リストから接続を選択します。
    • パイプライン: ドロップダウン・リストからパイプラインを選択します。
    • Kafkaターゲット ドロップダウン・リストからKafkaターゲットを選択します。
    • タイムスタンプ: タイムスタンプとして使用するパイプラインの列を選択します。
    • タイムスタンプ・フォーマット: Joda Timeフォーマットを使用したタイムスタンプに適切なフォーマットを選択または設定します。これは必須フィールドです。デフォルト値はautoです。
    • メトリック: メジャーを作成するためのメトリックを選択します。
    • ディメンション: グループ化のためのディメンションを選択します。
    • カーディナリティの高いディメンション: 一意のIDなど、カーディナリティの高いディメンションを選択します。ハイパーログ近似が使用されます。
  5. 「次」をクリックします。
  6. 「メトリック機能」画面でメトリックに必要な値を選択します。
  7. 「詳細設定」画面で、次の詳細を入力します:
    • セグメント粒度: セグメントを作成する際の粒度を選択します
    • 問合せ粒度: 結果を問い合せることができる最小の粒度と、セグメント内のデータの粒度を選択します
    • タスク数: レプリカ・セット内の読取りタスクの最大数を選択します。つまり、タスク読取りの最大数はtaskCount*replicasとなり、タスクの合計数(読取り+パブリッシュ)はこれより大きくなります。タスク読取りの数は、taskCount > {numKafkaPartitions}の場合のtaskCountより小さくなります。
    • タスク期間: タスクが読取りを停止してそのセグメントのパブリッシュを開始するまでの時間の長さを選択します。セグメントを深層ストレージに配置し、履歴ノードによってロードできるのは、索引付けタスクが完了した場合のみです。
    • メモリー内の最大行: 0以上の数値を入力します。この数値は、永続化の前に集計する行の数を示します。この数値は、集計後の行であるため、入力イベントと同じではありませんが、それらのイベントの結果として集計された行の数です。これは、必要なJVMヒープ・サイズを管理するために使用されます。索引付け用の最大ヒープ・メモリー使用量は、maxRowsInMemory*(2 + maxPendingPersists)に応じて変化します。
    • セグメント当たりの最大行: 0以上の数値を入力します。これは、セグメントに集計する行の数で、この数値は集計後の行です。
    • 即時永続期間: 中間永続化が発生する割合を決定する期間を選択します。これにより、データ・キューブは、索引付けタスクが終了するより前の早い段階で問合せ準備を完了できます。
    • レポート解析例外: 解析中に発生した例外をスローし、収集を中止するには、このオプションを選択します。
    • 詳細IO構成: CSV形式で名前/値ペアを指定します。使用可能な構成は、replicasstartDelayperioduseEarliestOffsetcompletionTimeoutおよびlateMessageRejectionPeriodです。
    • 詳細チューニング構成: CSV形式で名前/値ペアを指定します。使用可能な構成は、maxPendingPersistshandoffConditionTimeoutresetOffsetAutomaticallyworkerThreadschatThreadshttpTimeoutおよびshutdownTimeoutです。
  8. 「保存」をクリックします。

6.4.3 キューブの探索

druidベースのキューブを作成した場合、その中のデータを探索できます。

キューブを探索するには:

  1. 「カタログ」で、探索するキューブをクリックします。
  2. 「キューブ探索」画面で、次のパラメータを設定して問合せを構成します:
    • ビジュアライゼーション・タイプ: ドロップダウン・リストからビジュアライゼーション・タイプを選択します。

    • 時間: 時間粒度、起点(開始時間)、時間範囲などの時間関連のフォーム属性を設定します

    • グループ化基準: 問合せデータを集計するためのパラメータを選択します

    • 非グループ化基準: アトミック行を問い合せるためのパラメータを選択します。

    • オプション

    • フィルタ — フィルタに使用できる列

    • 結果フィルタ — 結果フィルタに使用できる列

  3. 「問合せ」をクリックし、定義されたパラメータを使用して問合せを実行します。
  4. 「別名保存」をクリックし、キューブ探索を保存します。ビジュアライゼーションとして保存し、既存のダッシュボードに追加するか、ダッシュボードに追加しないか、新しいダッシュボードに追加するかを選択できます。