CREATE EVENT TABLE¶
関数やプロシージャからのログされたメッセージなどのイベントをキャプチャする イベントテーブル を作成します。
- こちらもご参照ください。
ALTER TABLE (イベントテーブル)、 DESCRIBE EVENT TABLE、 DROP TABLE、 SHOW EVENT TABLES
構文¶
CREATE [ OR REPLACE ] EVENT TABLE [ IF NOT EXISTS ] <name>
[ CLUSTER BY ( <expr> [ , <expr> , ... ] ) ]
[ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
[ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
[ CHANGE_TRACKING = { TRUE | FALSE } ]
[ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
[ COPY GRANTS ]
[ [ WITH ] COMMENT = '<string_literal>' ]
[ [ WITH ] ROW ACCESS POLICY <policy_name> ON ( <col_name> [ , <col_name> ... ] ) ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
必須パラメーター¶
name
イベントテーブルの識別子(名前)を指定します。イベントテーブルが作成されるスキーマに対して一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれている場合を除き、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
オプションのパラメーター¶
CLUSTER BY ( expr [ , expr , ... ] )
テーブル内の1つ以上の列または列式をクラスタリングキーとして指定します。詳細については、 クラスタリングキーとクラスタ化されたテーブル をご参照ください。
デフォルト:値なし(テーブルにクラスタリングキーが定義されていない)
重要
クラスタリングキーは、すべてのテーブルに対して意図または推奨されて いません 。通常、非常に大きな(つまり、マルチテラバイト)テーブルに役立ちます。
テーブルのクラスタリングキーを指定する前に、 Snowflakeテーブル構造について をお読みください。
DATA_RETENTION_TIME_IN_DAYS = integer
テーブルの履歴データに対してTime Travelアクション(SELECT、CLONE、UNDROP)を実行できるように、テーブルの保持期間を指定します。詳細については、 Time Travelの理解と使用 をご参照ください。
このオブジェクトレベルパラメーターの詳細な説明、およびオブジェクトパラメーターの詳細については、 パラメーター をご参照ください。
値:
Standard Edition:
0
または1
Enterprise Edition:
永続テーブルの場合は
0
~90
デフォルト:
Standard Edition:
1
Enterprise Edition(またはそれ以上):
1
(スキーマ、データベースまたはアカウントレベルで別のデフォルト値が指定されていない場合)
注釈
0
の値は、テーブルのTime Travelを効果的に無効化します。MAX_DATA_EXTENSION_TIME_IN_DAYS = integer
Snowflakeがテーブルのデータ保持期間を延長してテーブル上のストリームが古くなるのを防ぐことができる最大日数を指定するオブジェクトパラメーター。
このパラメーターの詳細については、 MAX_DATA_EXTENSION_TIME_IN_DAYS をご参照ください。
CHANGE_TRACKING = TRUE | FALSE
テーブルで変更追跡を有効にするかどうかを指定します。
TRUE
テーブルの変更追跡を有効にします。この設定により、非表示の列のペアがソーステーブルに追加され、変更追跡メタデータの列への保存が開始されます。これらの列は少量のストレージを消費します。変更追跡メタデータのクエリには、 SELECT ステートメントの CHANGES 句を使用するか、テーブルで1つ以上のストリームを作成し、クエリします。
FALSE
は、テーブルの変更追跡を有効にしません。
デフォルト: FALSE
DEFAULT_DDL_COLLATION = 'collation_specification'
テーブル内にある列のデフォルトの 照合順序仕様 を指定します。
パラメーターの詳細については、 DEFAULT_DDL_COLLATION をご参照ください。
COPY GRANTS
CREATE OR REPLACE EVENT TABLE を使用して新しいテーブルを作成するときに、元のテーブルのアクセス権限を保持するように指定します。
このパラメーターは、既存のテーブルから新しいテーブルに OWNERSHIP を 除く すべての権限をコピーします。新しいテーブルは、スキーマ内のオブジェクトタイプに定義された将来の許可を継承 しません 。デフォルトでは、 CREATE EVENT TABLE ステートメントを実行するロールが新しいテーブルを所有します。
パラメーターが CREATE EVENT TABLE ステートメントに含まれていない場合、新しいテーブルは元のテーブルに付与された明示的なアクセス権限を継承 しません が、スキーマ内のオブジェクトタイプに定義された将来の権限は継承します。
注意:
データ共有 の場合、
既存のテーブルが別のアカウントと共有されていた場合、置換テーブルも共有されます。
既存のテーブルがデータコンシューマとしてアカウントと共有され、アクセスがアカウント内の他のロールにさらに許可された場合(親データベースの
GRANT IMPORTED PRIVILEGES
を使用)、置換テーブルにもアクセスが許可されます。
置換テーブルの SHOW GRANTS 出力には、コピーされた権限の被付与者が、ステートメントが実行されたときの現在のタイムスタンプとともに、 CREATE EVENT TABLE ステートメントを実行したロールとしてリストされます。
許可をコピーする操作は、 CREATE EVENT TABLE コマンドで(つまり、同じトランザクション内で)アトミックに発生します。
ROW ACCESS POLICY policy_name ON ( col_name [ , col_name ... ] )
テーブルに設定する 行アクセスポリシー を指定します。
COMMENT = 'string_literal'
テーブルのコメントを指定します。
デフォルト: 値なし
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
使用上の注意¶
スキーマに同じ名前のイベントテーブルやビューを含めることはできません。イベントテーブル作成時に、
同じ名前のテーブルまたはビューがスキーマにすでに存在する場合は、エラーが返され、イベントテーブルは作成されません。
同じ名前のイベントテーブルがスキーマにすでに存在する場合は、オプションの
OR REPLACE
キーワードがコマンドに含まれている場合を除き、エラーが返され、イベントテーブルは作成されません。
重要
OR REPLACE
を使用することは、既存のイベントテーブルで DROP TABLE を使用してから、同じ名前で新しイベントいテーブルを作成することと同等です。ただし、ドロップされたテーブルは、システムから完全には削除 されません 。代わりに、Time Travel内で保持されます。Time Travelでドロップされたテーブルは復元できますが、アカウントのデータストレージにも寄与するため、これは重要です。詳細については、 Time TravelおよびFail-safeのストレージコスト をご参照ください。CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
これは、 CREATE OR REPLACE EVENT TABLE 操作と同時に実行されるクエリが、古いテーブルバージョンまたは新しいテーブルバージョンのいずれかを使用することを意味します。
テーブルを再作成すると(オプションの
OR REPLACE
キーワードを使用)、その履歴が削除され、テーブル上のストリームが古くなります。古いストリームは読み取れません。メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
my_events
という名前のイベントテーブルを作成します。
CREATE EVENT TABLE my_events;