WITH ストリームヒント
ヒントを使用してさまざまなストリーム設定オプションを指定し、ストリームの処理方法を制御します。
関連情報: WITH CONSUME
構文
SELECT ...
FROM <stream_name> WITH (<hint1> = <value1>[, <hint2> = <value2>, ...])
以下に、利用可能なヒント、その説明、およびストリーム処理を最適化するための推奨される使用方法を示します。
例
デモの前に、テーブルを作成し、その上にストリームを定義して、2 行のデータを挿入します。
CREATE TABLE t1(a int);
CREATE STREAM s ON TABLE t1;
INSERT INTO t1 values(1);
INSERT INTO t1 values(2);
以下は、ストリームをクエリする際に MAX_BATCH_SIZE ヒントが各バッチで処理される行数にどのように影響するかを示しています。MAX_BATCH_SIZE を 1 に設定すると、各バッチには 1 行のみが含まれます。一方、2 に設定すると、2 行とも 1 つのバッチで処理されます。
SELECT * FROM s WITH (CONSUME = FALSE, MAX_BATCH_SIZE = 1);
-[ RECORD 1 ]-----------------------------------
a: 1
change$action: INSERT
change$is_update: false
change$row_id: de75bebeeb6b4a54bfe05d4d14c83757000000
SELECT * FROM s WITH (CONSUME = FALSE, MAX_BATCH_SIZE = 2);
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ a │ change$action │ change$is_update │ change$row_id │
├─────────────────┼───────────────┼──────────────────┼────────────────────────────────────────┤
│ 2 │ INSERT │ false │ d2c02e411db84d269dc9f6e32d8444bc000000 │
│ 1 │ INSERT │ false │ de75bebeeb6b4a54bfe05d4d14c83757000000 │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
以下は、ストリームをクエリする際に CONSUME ヒントがどのように動作するかを示しています。CONSUME = TRUE かつ MAX_BATCH_SIZE = 1 の場合、各クエリはストリームから 1 行を消費します。
SELECT * FROM s WITH (CONSUME = TRUE, MAX_BATCH_SIZE = 1);
-[ RECORD 1 ]-----------------------------------
a: 1
change$action: INSERT
change$is_update: false
change$row_id: de75bebeeb6b4a54bfe05d4d14c83757000000
SELECT * FROM s WITH (CONSUME = TRUE, MAX_BATCH_SIZE = 1);
-[ RECORD 1 ]-----------------------------------
a: 2
change$action: INSERT
change$is_update: false
change$row_id: d2c02e411db84d269dc9f6e32d8444bc000000