このドキュメントでは、Realtime Compute で ElasticSearch 結果テーブルを作成する方法について説明します。

排他モードでデプロイされた Realtime Compute にのみ適用されます。

DDL 定義

REST API は、ElasticSearch 結果テーブルを実装するために使用されます。 理論的には、REST API はすべての ElasticSearch バージョンと互換性があります。 Realtime Compute は、ElasticSearch テーブルを結果テーブルとして作成することをサポートしています。 サンプルコードは次のとおりです。

create table es_stream_sink(
  field1 long, 
  field2 varbinary, 
  field3 varchar,
  PRIMARY KEY(field1)
) with (
  type ='elasticsearch',
  endPoint = '<yourEndPoint>',
  accessId = '<yourAccessId>',
  accessKey = '<yourAccessSecret>',
  index = '<yourIndex>',
  typeName = '<yourTypeName>'
);
ElasticSearch は、プライマリキーに基づいたデータ更新をサポートしています。 プライマリキーに定義できるフィールドは 1 つのみです。
  • プライマリキーが指定されている場合、ドキュメント ID はプライマリキーフィールドの値です。
  • プライマリキーが指定されていない場合、ドキュメント ID はランダムに生成されます。 詳細については『Index API』をご参照ください。
  • 完全更新モードでは、以前のドキュメントのフィールドを更新する代わりに、後のドキュメントが以前のドキュメントを上書きします。
  • 増分更新モードでは、渡されたフィールド値に基づいて、対応するフィールドが更新されます。
  • すべての更新はデフォルトで、追加または更新を意味する upsert セマンティクスを使用します。

WITH パラメーター

一般的な設定

名前 説明 デフォルト値 必須/省略可能
endPoint サーバーアドレス。例:http://127.0.0.1:9211 なし 必須
accessId AccessKey ID。 なし 必須
accessKey AccessKey シークレット。 なし 必須
index データベース名に類似したインデックス名。 なし 必須
typeName データベーステーブル名に類似したタイプ名。 なし 必須
bufferSize 一度に書き込まれるデータレコードの数。 1000 省略可能
maxRetryTimes 例外の場合に許可される再試行の最大数。 30 省略可能
timeout 読み取りタイムアウト期間。 単位 :ミリ秒。 600000 省略可能
discovery オペレーター検出を有効にするかどうかを示します。 オペレーターの検出が有効になっている場合、クライアントは 5 分ごとにサーバーリストを更新します。 false 省略可能
compression リクエスト本文を圧縮するために GZIP を使用するかどうかを示します。 true 省略可能
multiThread JestClient のマルチスレッドを有効にするかどうかを示します。 true 省略可能
ignoreWriteError 書き込み例外を無視するかどうかを示します。 false 省略可能
Settings インデックスの作成に使用される設定。 なし 省略可能
updateMode プライマリキーが指定された後の更新モード。 full
  • full:完全なデータの上書き
  • inc:増分データ更新
省略可能

動的なインデックス関連の WITH パラメーター

名前 説明 デフォルト値 必須/省略可能
dynamicIndex 動的インデックスを有効にするかどうかを示します。 false(true/false) 省略可能
indexField インデックスのフィールド名。 省略可能 このパラメーターは、dynamicIndex が true に設定されている場合にのみ必要です。 TIMESTAMP (秒単位)、DATE、および LONG データ型のみをサポートします。
indexInterval インデックス変更の間隔。 d このパラメーターは、dynamicIndex が true に設定されている場合にのみ必要です。 有効な値 :
  • d: 日
  • m:月
  • w:週
  1. dynamicIndex が true に設定されている場合、基本設定の index 名は、後で作成されるインデックスの統一エイリアスとして使用されます。 エイリアスとインデックスには 1 対多の関係があります。
  2. indexInterval の異なる値に対応する実際のインデックス名は次のとおりです。
    • d -> Alias + "yyyyMMdd"
    • m -> Alias + "yyyyMM"
    • w -> Alias + "yyyyMMW"
  3. Index API を使用して実際のインデックスを変更できますが、エイリアスの 取得 のみです。 エイリアスを変更する場合は、『Index Aliases』をご参照ください。