Snowflakeスクリプトでのトレースイベントの出力¶
Snowflake SYSTEM
関数を使用すると、Snowflakeスクリプトで記述された関数またはプロシージャハンドラーからトレースイベントを出力できます。
トレースイベントを出力する前に、必要なデータがイベントテーブルに格納されるようにトレースレベルが設定されていることを確認してください。詳細については、 トレースレベルの設定 をご参照ください。
注釈
トレースイベントの出力を開始する前に、イベントテーブルを設定する必要があります。詳細については、 イベントテーブルの設定 をご参照ください。
イベントテーブルで SELECT コマンドを実行すると、格納されたトレースイベントデータにアクセスできます。詳細については、 トレースデータへのアクセス をご参照ください。
Snowflakeでのログの設定とメッセージの取得に関する一般的な情報については、 関数とプロシージャのイベントをトレースする をご参照ください。
注釈
トレースイベントを追加する際に留意すべきガイドラインについては、 トレースイベントを追加するための一般的なガイドライン をご参照ください。
トレースイベントの追加¶
トレースイベントを追加するには、 SYSTEM$ADD_EVENT (Snowflakeスクリプトの場合) 関数を呼び出してイベントの名前を渡します。オプションで、属性(キーと値のペア)をイベントに関連付けることもできます。
次の例のコードは、2つのイベント、 SProcEmptyEvent
と SProcEventWithAttributes
を追加します。 SProcEventWithAttributes
を使用すると、コードは2つの属性、 key1
と key2
も追加します。
SYSTEM$ADD_EVENT("SProcEmptyEvent")
SYSTEM$ADD_EVENT("SProcEventWithAttributes", {"key1": "value1", "key2": "value2"})
これらのイベントを追加すると、イベントテーブルに2つの行が作成され、それぞれの RECORD 列に異なる値が含まれます。
{
"name": "SProcEmptyEvent"
}
{
"name": "SProcEventWithAttributes"
}
SProcEventWithAttributes
イベント行には、行の RECORD_ATTRIBUTES 列に次の属性が含まれています。
{
"key1": "value1",
"key2": "value2"
}
スパン属性の追加¶
SYSTEM$SET_SPAN_ATTRIBUTES 関数を呼び出すと、スパンに関連付けられた属性(キーと値のペア)を設定できます。
スパンの詳細については、 Snowflakeがトレースイベントを表す方法 をご参照ください。
SYSTEM$SET_SPAN_ATTRIBUTES (Snowflakeスクリプトの場合) 関数は次の形式で使用できます。
SYSTEM$SET_SPAN_ATTRIBUTES(<object>);
条件
object
は、このトレースイベントの属性を指定するキーと値のペアを持つSnowflakeスクリプトオブジェクトです。
次の例のコードは4つの属性を作成し、それらの値を設定します。
SYSTEM$SET_SPAN_ATTRIBUTES('{'attr1':'value1', 'attr2':true}');
これらの属性を設定すると、イベントテーブルの RECORD_ATTRIBUTES 列が次のようになります。
{
"attr1": "value1",
"attr2": "value2"
}
例¶
次の例のコードでは、 SYSTEM$ADD_EVENT 関数を使用して、 name_a
という名前のイベントと name_b
という名前のイベントを追加します。 name_b
では、2 つの属性 score
と pass
が関連付けられます。このコードは、 SYSTEM$SET_SPAN_ATTRIBUTES を使用して、スパンの2つの属性、 attr1
と attr2
を設定します。
create procedure MYPROC()
returns double
language sql
as
$$
begin
-- Add an event without attributes
SYSTEM$ADD_EVENT('name_a');
-- Add an event with attributes
let attr := {'score':89, 'pass':true};
SYSTEM$ADD_EVENT('name_b', attr);
-- Set attributes for the span
SYSTEM$SET_SPAN_ATTRIBUTES("{'attr1':'value1', 'attr2':true}");
return 3.14;
end;
$$
;
call MYPROC();