表作成時の変更前イメージの有効化

表の作成時に変更前イメージを有効にする方法について説明します。

オプション句を使用して表を作成すると、変更前イメージの生成および永続ストレージを有効にできます。

構文:

before_image_definition ::= ENABLE BEFORE IMAGE [ttl_definition]

セマンティクス

ENABLE BEFORE IMAGE句を指定すると、後続の更新および削除操作で表の行の変更前イメージが生成されます。挿入操作の場合、変更前イメージは空になります。表の作成時に変更前イメージを有効にするだけでなく、Streams APIを介してサブスクリプション構成で変更前イメージを有効にする必要もあります。詳細は、Streams開発者ガイドNoSQLSubscriptionConfigの使用を参照してください。

ENABLE BEFORE IMAGE句を含めない場合、サブスクライブされた表では変更後イメージのみをストリーミングできます。

表の作成後に変更前イメージの生成を有効にするには、ALTER TABLE文ENABLE BEFORE IMAGE句とともに使用する必要があります。

変更前イメージによって消費されるストレージを制限するには、TTL定義を使用して変更前イメージを期限切れにすることができます。TTL値は、変更前イメージが生成されてからTTLが期限切れになるまでディスクに格納されることを示します。この期間を経過すると、変更前イメージは期限切れになり、使用していたディスク領域が解放され、ストリームに表示されなくなります。

変更前イメージのTTL定義を指定しない場合、生成された変更前イメージは24時間保持されます。

ノート:

  • CREATE TABLE文では、表のTTLと変更前イメージのTTLの両方を同時に設定できます。両方のTTL値は相互に独立して機能します。
  • 行は、変更前イメージのTTLが期限切れになる前に期限切れになる可能性があります。
  • 変更前イメージは、ストリーミングと組み合せて使用すると便利です。詳細は、変更前イメージのストリーミングの項を参照してください。
  • 変更前イメージのTTLは、変更前イメージをストリームに送出できる時間ウィンドウを制御します

例5-30 航空会社の手荷物追跡アプリケーション表の作成時の変更前イメージの有効化

CREATE TABLE BaggageInfo (ticketNo LONG,
fullName STRING,
gender STRING,
contactPhone STRING,
confNo STRING,
bagInfo JSON,
PRIMARY KEY (ticketNo)
)USING TTL 5 DAYS ENABLE BEFORE IMAGE USING TTL 48 HOURS

説明: 前述のCREATE TABLE文は、BaggageInfo表を作成し、後続のDML操作に対して変更前イメージの生成を有効にします。表データのTTL値は5日に設定されます。変更前イメージのTTL値は48時間に設定されます。