Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

SVL_UDF_LOG

フォーカスモード
SVL_UDF_LOG - Amazon Redshift

システムで定義された、ユーザー定義関数 (UDF) の実行時に生成するエラーと警告メッセージを記録します。

SVL_UDF_LOG はすべてのユーザーに表示されます。スーパーユーザーはすべての行を表示できますが、通常のユーザーは自分のデータのみを表示できます。詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

このテーブルの一部またはすべてのデータは、SYS モニタリングビュー SYS_UDF_LOG でも確認できます。SYS モニタリングビューのデータは、使いやすく理解しやすいようにフォーマットされます。クエリには、SYS モニタリングビューを使用することをお勧めします。

テーブルの列

列名 データ型 説明
query bigint クエリ ID。この ID を使用して、他のさまざまなシステムテーブルやビューを結合できます。
メッセージ char(4096) 関数によって生成されたメッセージ。
作成済み timestamp ログが作成された時間。
トレースバック char(4096) 使用可能な場合、この値は UDF 用のスタックのトレースバックを提供します。詳細については、Python の標準ライブラリの traceback を参照してください。
funcname character(256) 実行中の UDF の名前。
node integer メッセージが生成されたノード。
slice integer メッセージが生成されたスライス。
seq integer スライス上のメッセージのシーケンス。

サンプルクエリ

次の例では UDF がシステム定義されたエラーをどのように処理するかを示します。最初のブロックは、引数の逆を返す UDF 関数の定義を示します。2 番目のブロックに示すように、関数を実行して引数を 0 に指定すると、関数はエラーを返します。3 番目のステートメントは、SVL_UDF_LOG とログされたエラーメッセージを読み取ります

-- Create a function to find the inverse of a number CREATE OR REPLACE FUNCTION f_udf_inv(a int) RETURNS float IMMUTABLE AS $$ return 1/a $$ LANGUAGE plpythonu; -- Run the function with a 0 argument to create an error Select f_udf_inv(0) from sales; -- Query SVL_UDF_LOG to view the message Select query, created, message::varchar from svl_udf_log; query | created | message -------+----------------------------+--------------------------------------------------------- 2211 | 2015-08-22 00:11:12.04819 | ZeroDivisionError: long division or modulo by zero\nNone

次の例では、UDF にログされたメッセージと警告メッセージを追加することで、ゼロで分割された操作がエラーメッセージで停止する代わりに警告メッセージとなります。

-- Create a function to find the inverse of a number and log a warning CREATE OR REPLACE FUNCTION f_udf_inv_log(a int) RETURNS float IMMUTABLE AS $$ import logging logger = logging.getLogger() #get root logger if a==0: logger.warning('You attempted to divide by zero.\nReturning zero instead of error.\n') return 0 else: return 1/a $$ LANGUAGE plpythonu;

次の例は、関数を実行し、その後 SVL_UDF_LOG をクエリしていうメッセージを表示します。

-- Run the function with a 0 argument to trigger the warning Select f_udf_inv_log(0) from sales; -- Query SVL_UDF_LOG to view the message Select query, created, message::varchar from svl_udf_log; query | created | message ------+----------------------------+---------------------------------- 0 | 2015-08-22 00:11:12.04819 | You attempted to divide by zero. Returning zero instead of error.

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.