ストリームの管理

このトピックでは、ストリームの管理に関連する管理タスクについて説明します。

このトピックの内容:

ビューと基になるテーブルの変更追跡の有効化

ユーザーがビューの変更データをクエリできるようにするには、ビューと基になるテーブルで変更追跡を有効にする必要があります。

変更追跡を有効にできるのは、特定のビューまたは基になるテーブルのオブジェクト所有者(つまり、 OWNERSHIP 権限を持つロール)のみです。

変更追跡を有効にするには、次のオプションを使用できます。

  1. ビュー所有者のロールを使用して、ビューにストリームを作成します。このアクションにより、ビューでの変更追跡が可能になります。

    同じロールが基になるテーブルも所有している場合、変更追跡もテーブルで有効になります。それ以外の場合、テーブルの所有者は、テーブルの変更追跡を明示的に有効にする必要があります。これらのステップについては、 基になるテーブルで変更追跡を明示的に有効にする (このトピック内)をご参照ください。

  2. ビューとテーブルで変更追跡を明示的に有効にします。手順については、このセクションの残りの手順をご参照ください。

ビューの変更追跡を明示的に有効にする

ビューを作成するとき(CREATE VIEW を使用)またはそれ以降(ALTER VIEW を使用)に CHANGE_TRACKING パラメーターを設定します。

ビューの基になるテーブルでも、変更追跡を明示的に有効にする必要があることに注意してください。手順については、 基になるテーブルで変更追跡を明示的に有効にする (このトピック内)をご参照ください。

たとえば、テーブルから行のサブセットを選択するセキュアビューを現在のスキーマに作成します。

CREATE SECURE VIEW v CHANGE_TRACKING = TRUE AS SELECT col1, col2 FROM t;
Copy

たとえば、既存のビューを変更して、変更追跡を有効にします。

ALTER VIEW v2 SET CHANGE_TRACKING = TRUE;
Copy

基になるテーブルで変更追跡を明示的に有効にする

重要

ビューを作成または変更して CHANGE_TRACKING を指定すると、関連する依存データベースオブジェクトが自動的に更新され、変更を追跡できるようになります。操作中は基盤となるリソースがロックされるため、 DDL/DML 操作で遅延が発生する可能性があります。詳細については、 リソースのロック をご参照ください。

ステートメントを実行するユーザーが十分な権限(OWNERSHIP)を持つロールを指定していない場合、ステートメントは失敗し、基礎となるデータベースオブジェクトは更新されず、ロックが解除されます。

テーブルを作成するとき(CREATE TABLE を使用)またはそれ以降(ALTER TABLE を使用)に CHANGE_TRACKING パラメーターを設定します。

たとえば、現在のスキーマにテーブルを作成するには、

CREATE TABLE t (col1 STRING, col2 NUMBER) CHANGE_TRACKING = TRUE;
Copy

たとえば、既存のテーブルを変更して、変更追跡を有効にするには、

ALTER TABLE t1 SET CHANGE_TRACKING = TRUE;
Copy

重要

TABLE を作成または変更して CHANGE_TRACKING を指定すると、テーブルは操作の間ロックされ 、DML 操作の遅延が発生する可能性があります。詳細については、 リソースのロック をご参照ください。

ストリームが古くなることの回避

ストリームが古くなるのを防ぐために、 STALE_AFTER タイムスタンプの前に(つまり、ソースオブジェクトの延長されたデータ保持期間内に)変更データを定期的に使用することを強くお勧めします。

ストリームのデータ保持期間を表示するには、 DESCRIBE STREAM または SHOW STREAMS コマンドを実行します。STALE_AFTER 列のタイムスタンプは、ストリームが古くなると現時点で予測される時期(または、タイムスタンプが過去の場合は古くなった時期)を示します。このタイムスタンプは、 DATA_RETENTION_TIME_IN_DAYS または MAX_DATA_EXTENSION_TIME_IN_DAYS パラメーター設定の大きい方を現在のタイムスタンプに追加することによって計算されます。タイムスタンプが過去の場合、ストリームはすでに古くなっている可能性があることに注意してください。STALE 列は、ストリームが実際にはまだ古くなっていない可能性があるものの、古くなっていると予想されるかどうかも示します。

ストリームの変更データを消費すると、 STALE_AFTER タイムスタンプが先送りされます。

詳細については、 データ保持期間と陳腐化 をご参照ください。

Snowsight でのストリームの表示と管理

Snowsight でのトリームを表示・管理するには、次を行います。

  1. Snowsight にサインインします。

  2. Data » Databases を選択します。

  3. 特定のデータベースとスキーマについては、 Streams を選択し、管理したいストリームを選択します。

Snowsight でストリームを表示する場合、次を実行できます。

  • Details セクションで、ストリームが適用されるテーブル名、ストリームのタイプ、ストリームが古いかどうかを確認します。

  • ストリームの作成に使用した SQLス テートメントを確認します。

  • ストリームに対する権限を管理します。 Snowsightでオブジェクトの権限を管理する をご参照ください。