プロバイダー・アカウントにイベント・テーブルを設定し、管理します。¶
このトピックでは、プロバイダーがイベントテーブルを設定し、アプリのイベント共有を管理する方法について説明します。
各地域のプロバイダー組織にイベントテーブルを設置する¶
コンシューマーが共有するログ・メッセージとトレース・イベントを収集するために、プロバイダーは以下を実行してイベント・テーブルを設定する必要があります:
イベント・アカウント にイベント・テーブルを作成する。
イベントアカウント で、イベントテーブルをアクティブなイベントテーブルとして設定する。
重要
コンシューマ^がアプリをインストールする前に、プロバイダーがアプリがインストールされるリージョン内にイベントアカウントとアクティブなイベントテーブルを持っていない場合、トレースイベントとログメッセージは破棄されます。
イベントアカウントとしてのアカウントを設定する¶
共有ログやイベントを保存するには、プロバイダーはイベントテーブルを保持するアカウントを選択する必要があります。プロバイダーがアクセスできる任意のアカウントを選択できます。ただし、組織で複数のプロバイダーがアプリケーションパッケージを公開している場合は、コンシューマーからの共有イベントを保存する、専用のSnowflakeアカウントの使用を検討してください。
共有イベントを保存するために使用されるアカウントには、次の制限が適用されます。
イベントを保存するために使用するアカウントとしてアカウントを設定するには、 ORGADMIN ロールを使用する必要があります。
このアカウントには、アクティブ イベントテーブルが必要です。
以下のいずれかに該当するアカウントは指定できません。
ロックまたは凍結アカウント。
リーダーアカウント。
試用アカウント。
Snowflake管理アカウント。
注釈
プロバイダーは、コンシューマーがアプリケーションをインストールしたのと同じリージョンでのみ、ログと共有イベントを収集できます。プロバイダーは、コンシューマーがアプリケーションのイベント共有を構成するすべてのリージョンで共有イベントを保存するためのアカウントを設定する必要があります。
あるリージョンのイベントアカウントとしてアカウントを設定するには、次の例で示すように SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION システム関数を呼び出します。
SELECT SYSTEM$SET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
条件:
snowflake_region
アカウントがあるSnowflakeリージョンの名前(例:
AWS_US_WEST_2, AWS_US_EAST_1
)を指定します。region_group
リージョングループ(例:
PUBLIC
)を指定します。詳細については、 リージョングループ をご参照ください。account_name
アカウント名を指定します。指定したリージョンにイベントアカウントとして別のアカウントがすでに設定されている場合、このコマンドを実行すると、イベントアカウントはここで指定したアカウントに変更されます。
イベント・アカウントにイベント・テーブルを作成する¶
イベントテーブルを作成するには、次の例に示すように CREATE EVENT TABLE コマンドを実行します。
CREATE EVENT TABLE event_db.event_schema.my_event_table;
このコマンドは、イベント・テーブルを含むデータベースとスキーマを指定します。
イベント・テーブルをアクティブ・イベント・テーブルとして設定する¶
アカウントは複数のイベントテーブルを持つことができますが、一度にSnowflakeアカウントのアクティブなイベントテーブルとして設定できるのは1つだけです。アクティブなイベントテーブルがないと、コンシューマーが共有するログメッセージとトレースイベントは破棄されます。
イベントテーブルを作成した後、 ALTER ACCOUNT ... SET EVENT_TABLE を使用して、イベントテーブルがアカウントのアクティブテーブルであることを指定します。
ALTER ACCOUNT SET EVENT_TABLE=event_db.event_schema.my_event_table;
イベントアカウントとしてのアカウントを設定する¶
リージョンのイベントアカウントの設定を解除するには、 SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION システム関数を呼び出します。
SELECT SYSTEM$UNSET_EVENT_SHARING_ACCOUNT_FOR_REGION('<snowflake_region>', '<region_group>', '<account_name>')
条件:
snowflake_region
アカウントがあるSnowflakeリージョンの名前(例:
AWS_US_WEST_2
)を指定します。region_group
リージョングループ(例:
PUBLIC
)を指定します。account_name
アカウント名を指定します。
組織内のイベントアカウントを表示する¶
プロバイダー組織のイベントアカウントを表示するには、 SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS システム関数を呼び出します:
SELECT SYSTEM$SHOW_EVENT_SHARING_ACCOUNTS()
注釈
この関数を呼び出すには、 ORGADMIN ロールを使用する必要があります。
このシステム関数は、組織内にあるイベントアカウントのリストを含む JSON 形式の文字列を返します。メタデータがすべてのリージョンに伝搬するのに時間がかかるため、この関数は、ユーザが組織のイベントアカウントを設定または解除した後、最新のイベントアカウントを表示するまでに少し遅延がある場合があります。
アプリケーションパッケージで定義されたログレベルおよびトレースイベントレベルを表示する¶
次の例に示すように、アプリケーションパッケージで定義されたアプリケーションバージョンのログレベルを表示するには、 SHOW VERSIONS コマンドを使用します。
SHOW VERSIONS
IN APPLICATION PACKAGE HelloSnowflake;
イベントテーブルでログおよびイベントを表示する¶
イベントテーブルに格納されたログとイベントを表示するには、次の例に示すように、 SELECT コマンドを使用します。
SELECT * FROM EVENT_DB.EVENT_SCHEMA.MY_EVENT_TABLE
イベント・テーブルのクエリの詳細については、以下をご参照ください:
イベントテーブルのカラムについては、 イベントテーブル列 をご参照ください。