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