カテゴリ:

システム関数 (システム情報)

GET_PYTHON_PROFILER_OUTPUT (SNOWFLAKE.CORE)

Pythonコードプロファイラー によって生成されたレポートを含む出力を返します。

構文

SNOWFLAKE.CORE.GET_PYTHON_PROFILER_OUTPUT(<query_id>)
Copy

引数

query_id

プロファイリングを有効にしたストアドプロシージャクエリのクエリ ID。

戻り値

コードプロファイラー によって生成されたレポートを持つ VARCHAR 型の文字列。

アクセス制御の要件

この関数を呼び出すには、 ACCOUNTADMIN ロールを使用する必要があります。

プロファイラーが時間ではなくメモリのプロファイルに設定されている場合、設定は以下のようになります。

Handler Name: main
Python Runtime Version: 3.8
Modules Profiled: ['main_module']
File: _udf_code.py
Function: main at line 4

Line #   Mem usage    Increment  Occurrences  Line Contents
=============================================================
    4    245.3 MiB    245.3 MiB           1   def main(session, last_n, total):
    5                                             # create sample dataset to emulate id + elapsed time
    6    245.8 MiB      0.5 MiB           1       session.sql('''
    7                                                 CREATE OR REPLACE TABLE sample_query_history (query_id INT, elapsed_time FLOAT)''').collect()
    8    245.8 MiB      0.0 MiB           2       session.sql('''
    9                                             INSERT INTO sample_query_history
    10                                             SELECT
    11                                             seq8() AS query_id,
    12                                             uniform(0::float, 100::float, random()) as elapsed_time
    13    245.8 MiB      0.0 MiB           1       FROM table(generator(rowCount => {0}));'''.format(total)).collect()
    14
    15                                             # get the mean of the last n query elapsed time
    16    245.8 MiB      0.0 MiB           3       df = session.table('sample_query_history').select(
    17    245.8 MiB      0.0 MiB           1           funcs.col('query_id'),
    18    245.8 MiB      0.0 MiB           2           funcs.col('elapsed_time')).limit(last_n)
    19
    20    327.9 MiB     82.1 MiB           1       pandas_df = df.to_pandas()
    21    328.9 MiB      1.0 MiB           1       mean_time = pandas_df.loc[:, 'ELAPSED_TIME'].mean()
    22    320.9 MiB     -8.0 MiB           1       del pandas_df
    23    320.9 MiB      0.0 MiB           1       return mean_time
OSZAR »