このトピックでは、デプロイメントのSQLステートメントでWHERE句を変更した後、デプロイメントと状態データの互換性がどのように影響を受けるかについて説明します。
状態データはWHERE句には含まれません。そのため、WHERE句を変更しても、WHERE句の演算子の状態データ互換性には影響しませんが、その出力演算子の状態互換性には影響します。
WHERE条件の条件を変更して、不正なデータの除外など、デプロイメントデータを修正する場合、デプロイメントの[構成]タブの[パラメーター]セクションにある[その他の構成] フィールドに次の構成を追加できます。詳細については、「実行中のデプロイメントのパラメーターを構成する方法」をご参照ください。次の構成を追加し、WHERE句の条件を変更すると、システムはこの変更がダウンストリーム演算子の状態データ互換性に及ぼす影響を無視します。
table.optimizer.state-compatibility.ignore-filter=true説明
table.optimizer.state-compatibility.ignore-filter のデフォルト値は false です。
-- 元の SQL ステートメント:
select a, sum(b), max(c) from MyTable group by a;
-- WHERE 句を追加し、table.optimizer.state-compatibility.ignore-filter を false に設定します。この変更後、デプロイメントは状態データと互換性がなくなります。
select a, sum(b), max(c) from (select * from MyTable where a > 10) group by a;
-- WHERE 句を追加し、table.optimizer.state-compatibility.ignore-filter を true に設定します。この変更後、デプロイメントは状態データと完全に互換性を維持します。
select a, sum(b), max(c) from (select * from MyTable where a > 10) group by a;