ログおよびトレースの概要¶
ログメッセージをキャプチャし、コードの実行時にイベントをトレースすることで、Snowflake関数とプロシージャハンドラーコード(Snowpark APIs を使用 して記述したコードを含む)のアクティビティを記録できます。データを収集したら、 SQL を使用してクエリを実行し、結果を分析できます。
特に、次を記録して分析できます。
ログメッセージ は、コードの特定部分の状態に関する情報を含む、独立した詳細なメッセージです。
構造化データを使用した トレースイベント は、コードの複数の部分にまたがる情報やグループ化された情報を取得するために使用できます。
始めましょう¶
次の高レベルのステップを使用して、ログデータとトレースデータの取得と使用を開始します。
-
Snowflakeでは、ログとトレースデータをイベントテーブルに格納します。イベントテーブルは、事前定義された列のセットを持つ特別な種類のテーブルです。
ハンドラーコードからログまたはトレースデータの出力を開始します。
イベントテーブルを作成し、アカウントに関連付けたら、ハンドラーの言語で API を使用して、ハンドラーコードからログメッセージを出力します。ログおよびトレースデータをキャプチャした後、データをクエリして結果を分析できます。
詳細については、次をご参照ください。
イベントテーブルをクエリして、収集されたログとトレースデータを分析します。
詳細については、以下をご参照ください。
ログメッセージとトレースイベントを比較する¶
次のテーブルでは、ログメッセージとトレースイベントの特徴と利点を比較しています。
特徴 |
ログエントリ |
トレースイベント |
---|---|---|
使用目的 |
コードの状態に関して、詳細であっても構造化されていない情報を記録します。この情報を使用して、関数またはプロシージャの特定の呼び出し中に何が起こったかを理解します。 |
コードの各呼び出しの、簡潔であっても構造化された概要を記録します。この情報を集約して、コードの動作を高レベルで理解します。 |
ペイロードとしての構造 |
なし。ログエントリは単なる文字列です。 |
トレースイベントに付加できる属性で構造化されています。属性は、 SQL クエリで簡単にクエリできるキーと値のペアです。 |
グループ化のサポート |
なし。各ログエントリは独立したイベントです。 |
あり。トレースイベントはスパンに編成されます。スパンは独自の属性を持つことができます。 |
数量制限 |
無制限。コードによって出力されたすべてのログエントリは、イベントテーブルにインジェストされます。 |
スパンあたりのトレースイベント数の上限は128です。スパン属性の数にも制限があります。 |
記録されたデータに対するクエリの複雑性 |
比較的高い。クエリでは各ログエントリを解析して、そこから意味のある情報を抽出する必要があります。 |
比較的低い。クエリでは、トレースイベントの構造化された性質を利用できます。 |