このトピックでは、デプロイメントの SQL ステートメントで時間順ソートを変更した後、デプロイメントと状態データの互換性にどのように影響するかについて説明します。
互換性に影響しない、または部分的に影響する変更
ORDER BY を使用して proctime に基づいて昇順でデータをソートする場合、SELECT ステートメントのフィールドを変更できます。 この変更後も、デプロイメントは状態データと完全に互換性があります。
-- オリジナルの SQL ステートメント: select a, b, c from MyTable order by proctime asc; -- 入力フィールド d を SELECT ステートメントに追加します。 この変更後も、デプロイメントは状態データと完全に互換性があります。 select a, b, c, d from MyTable order by proctime asc;ORDER BY を使用してキーに基づいて昇順でデータをソートする場合、SELECT ステートメントのフィールドを変更できます。 この変更後も、デプロイメントは状態データと完全に互換性があります。
// オリジナルの SQL ステートメント: select a, b, ts from MyTable order by ts asc; // 入力フィールド ts を SELECT ステートメントから削除します。 この変更後も、デプロイメントは状態データと完全に互換性があります。 select a, b from MyTable order by ts asc;
完全な非互換性を引き起こす変更
ORDER BY を使用して rowtime に基づいてデータをソートする場合、SELECT ステートメントのフィールドを変更することはできません。 この変更後、ジョブは状態データと互換性がなくなります。
-- オリジナルの SQL ステートメント: select a, b, c from MyTable order by ts asc; -- 入力フィールド d を SELECT ステートメントに追加します。 この変更後、ジョブは状態データと互換性がなくなります。 select a, b, c, d from MyTable order by ts asc;ソートフィールドや方向など、ORDER BY に関連する属性を変更すると、デプロイメントは状態データと互換性がなくなります。
-- オリジナルの SQL ステートメント: select a, b, c from MyTable order by ts asc; -- フィールド a を ORDER BY に追加します。 この変更後、デプロイメントは状態データと互換性がなくなります。 select a, b, c from MyTable order by ts asc, a desc;