イベントテーブルの概要

プロシージャや UDFs を含む Snowflake オブジェクトが遠隔測定データを発行すると、Snowflake はそのデータをイベントテーブルに収集します。Snowflakeにはデフォルトでイベントテーブルが含まれていますが、新しく作成することもできます。

遠隔測定データを収集するには、 アクティブなイベントテーブル があり、 データ収集を許可する遠隔測定レベル を設定している必要があります。まだアクティブなイベントテーブルがない場合、Snowflakeはデフォルトのイベントテーブルをアクティブなイベントテーブルにします。

遠隔測定データの収集にはコストがかかります。これらのコストを理解するために --- あるいは、これらのコストを削減または回避するために --- テレメトリーデータ収集の費用 をご参照ください。

イベントテーブルとは何ですか?

イベント・テーブルは、あらかじめ定義された列のセットを持つ特別な種類のデータベーステーブルです。テーブルの 構造 は、遠隔測定データを扱うためのフレームワークである OpenTelemetry のデータモデルをサポートしています。 イベントテーブルがアクティブな場合 、Snowflake はテーブル内の遠隔測定データを収集します。これには Snowflake 自身が生成するデータと、特定の APIs を使用してハンドラーコードにインスツルメンテーションを行うことで生成されるデータが含まれます。SQL クエリを実行することで、収集したデータを表示することができます。

インストール後、、Snowflakeには SNOWFLAKE.TELEMETRY.EVENTS と呼ばれる デフォルトのイベントテーブル が含まれます。このイベント・テーブルはアクティブで、非アクティブにされるまでデータを収集します。また、 自分で を作成することもできます。

遠隔測定データを収集するには、アクティブなイベントテーブルが必要です。詳細については、 イベントテーブルをアクティブにする をご参照ください。

デフォルトのイベントテーブル

デフォルトでは、Snowflake には SNOWFLAKE.TELEMETRY.EVENTS.の名前のデフォルトイベントテーブルを含みます。自分でイベントテーブルを作る代わりに、このイベントテーブルを使うことができます。まだアクティブなイベントテーブルがない場合、Snowflakeはデフォルトのテーブルをアクティブなイベントテーブルにします。

デフォルトでは、Snowflake には、 SNOWFLAKE.TELEMETRY.EVENTS_VIEW ビュー という定義済みのビューも含まれており、このビューを使用することで、イベントテーブルのデータをより安全に、さまざまなユーザーに提供することができます。 ビューへのアクセスは、行アクセスポリシーで管理 できます。

注釈

デフォルトのイベント・テーブルは、あなたが作成したイベント・テーブルや通常のテーブルでサポートされている DDL コマンドのサブセットのみをサポートします。詳細については、 イベントテーブルの操作 をご参照ください。

デフォルトのイベント・テーブルと EVENTS_VIEW へのアクセスのロール

Snowflakeには、デフォルトのイベントテーブルおよび EVENTS_VIEW ビューへのアクセスを管理するために使用できる、以下の定義済みアプリケーションロールが含まれています。

EVENTS_VIEWER:

EVENTS_VIEW ビュー で SELECT ステートメントを実行する権限を持つロール。

EVENTS_ADMIN:

次の権限を持つロール:

EVENTS_VIEW へのアクセスを管理する。

行アクセスポリシー を使用して、 EVENTS_VIEW ビュー のデータへのアクセスを管理できます。Snowflakeには、 EVENT_VIEW ビューに行アクセスポリシーを追加および削除するために使用できるストアドプロシージャが用意されています。

注釈

これらの手続きを実行するには、 EVENTS_ADMIN ロール が必要です。

EVENT_VIEW ビューで行アクセス・ポリシーを使用することは、 Enterprise Edition の機能です。

イベントテーブルを作成する

新しいイベント・テーブルを作成するには、 CREATE EVENT TABLE コマンドを実行し、イベント・テーブルの名前を指定する。

イベントテーブルを作成するときは、テーブル内の列を指定しないように注意してください。 イベントテーブル列 で説明されているように、イベントテーブルには事前定義された一連の列がすでにあります。

CREATE EVENT TABLE 権限が付与または継承されたロールを使用する必要があります。

注釈

イベントテーブルの複製は現在サポートされていません。プライマリデータベースに含まれるイベントテーブルは複製中にスキップされます。

たとえば、 my_events という名前のイベントテーブルを作成するには、次のステートメントを実行します。

CREATE EVENT TABLE my_database.my_schema.my_events;
Copy

イベントテーブルをアクティブにする

遠隔測定データの保存を有効にするには、イベント・テーブルがアクティブ・イベント・テーブルであることを指定する必要があります。

アカウントのアクティブなイベントテーブルを指定するには、 ALTER ACCOUNT コマンドを実行し、 EVENT_TABLE パラメーターをイベントテーブルの名前に設定します。

注釈

このコマンドを実行するには、 ACCOUNTADMIN ロールを使用する必要があります。

さらに、次の権限を 両方 持つ必要があります。

ALTER ACCOUNT の実行に必要な権限の詳細については、 ALTER ACCOUNT コマンドに関するドキュメント をご参照ください。

たとえば、データベース my_database のスキーマ my_schema にある my_events という名前のイベントテーブルを、アカウントのアクティブなイベントテーブルとして設定するには、次のステートメントを実行します。

ALTER ACCOUNT SET EVENT_TABLE = my_database.my_schema.my_events;
Copy

上記のように、イベントテーブルの 完全修飾名 を指定する必要があります。

イベントテーブルとアカウントの関連付けを解除するには、 ALTER ACCOUNT コマンドを実行し、 EVENT_TABLE パラメーター設定を解除します。例:

ALTER ACCOUNT UNSET EVENT_TABLE;
Copy

EVENT_TABLE 値は、 SHOW PARAMETERS コマンドで確認できます。

SHOW PARAMETERS LIKE 'event_table' IN ACCOUNT;
Copy