メインコンテンツまでスキップ
メインコンテンツまでスキップ

system.query_log

Querying in ClickHouse Cloud

このシステムテーブルのデータは、ClickHouse Cloudの各ノードにローカルで保管されています。そのため、すべてのデータの完全なビューを取得するには、clusterAllReplicas 関数が必要です。詳細については こちら をご覧ください。

実行されたクエリに関する情報を含み、例えば、開始時刻、処理の持続時間、エラーメッセージなどが含まれます。

注記

このテーブルには INSERT クエリの取り込まれたデータは含まれていません。

クエリのロギング設定は、サーバー設定の query_log セクションで変更できます。

log_queries = 0 を設定することで、クエリのロギングを無効にすることができます。ただし、このテーブルの情報は問題解決に重要であるため、ロギングをオフにすることは推奨されません。

データのフラッシュ間隔は、サーバー設定の query_log セクションにある flush_interval_milliseconds パラメータで設定されます。フラッシュを強制するには、SYSTEM FLUSH LOGS クエリを使用してください。

ClickHouse はテーブルからデータを自動的に削除しません。詳細については Introduction を参照してください。

system.query_log テーブルは、2種類のクエリを記録します:

  1. クライアントによって直接実行された初期クエリ。
  2. 他のクエリによって開始された子クエリ(分散クエリ実行用)。これらのタイプのクエリでは、親クエリに関する情報が initial_* カラムに表示されます。

各クエリは、クエリのステータスに応じて query_log テーブルに1行または2行を作成します(type カラムを参照):

  1. クエリの実行が成功した場合、QueryStartQueryFinish タイプの2行が作成されます。
  2. クエリ処理中にエラーが発生した場合、QueryStartExceptionWhileProcessing タイプの2つのイベントが作成されます。
  3. クエリの開始前にエラーが発生した場合、ExceptionBeforeStart タイプの1つのイベントが作成されます。

query_log テーブルに登録されるクエリの数を減らすために、log_queries_probability 設定を使用できます。

フォーマットされたクエリを formatted_query カラムにログに記録するために、log_formatted_queries 設定を使用できます。

カラム:

  • hostname (LowCardinality(String)) — クエリを実行しているサーバーのホスト名。
  • type (Enum8) — クエリ実行時に発生したイベントのタイプ。値:
    • 'QueryStart' = 1 — クエリ実行の成功開始。
    • 'QueryFinish' = 2 — クエリ実行の成功終了。
    • 'ExceptionBeforeStart' = 3 — クエリ実行開始前の例外。
    • 'ExceptionWhileProcessing' = 4 — クエリ実行中の例外。
  • event_date (Date) — クエリの開始日。
  • event_time (DateTime) — クエリの開始時刻。
  • event_time_microseconds (DateTime64) — マイクロ秒精度でのクエリの開始時刻。
  • query_start_time (DateTime) — クエリ実行の開始時刻。
  • query_start_time_microseconds (DateTime64) — マイクロ秒精度でのクエリ実行の開始時刻。
  • query_duration_ms (UInt64) — ミリ秒単位のクエリ実行の持続時間。
  • read_rows (UInt64) — クエリに参加したすべてのテーブルおよびテーブル関数から読み取った行の総数。通常のサブクエリ、INおよびJOINのためのサブクエリを含みます。分散クエリについては、read_rows はすべてのレプリカで読み取られた行の総数を含みます。各レプリカは、自分の read_rows 値を送信し、クエリを開始したサーバーが受信したすべての値とローカルの値を集計します。キャッシュボリュームはこの値に影響を与えません。
  • read_bytes (UInt64) — クエリに参加したすべてのテーブルおよびテーブル関数から読み取ったバイトの総数。通常のサブクエリ、INおよびJOINのためのサブクエリを含みます。分散クエリについては、read_bytes はすべてのレプリカで読み取られたバイトの総数を含みます。各レプリカは自分の read_bytes 値を送信し、クエリを開始したサーバーが受信したすべての値とローカルの値を集計します。キャッシュボリュームはこの値に影響を与えません。
  • written_rows (UInt64) — INSERT クエリの場合、書き込まれた行の数。その他のクエリの場合、カラムの値は0です。
  • written_bytes (UInt64) — INSERT クエリの場合、書き込まれたバイト数(非圧縮)。その他のクエリの場合、カラムの値は0です。
  • result_rows (UInt64) — SELECT クエリの結果の行数、または INSERT クエリの行数。
  • result_bytes (UInt64) — クエリ結果を格納するために使用されるRAMの容量(バイト)。
  • memory_usage (UInt64) — クエリによるメモリ消費。
  • current_database (String) — 現在のデータベースの名前。
  • query (String) — クエリ文字列。
  • formatted_query (String) — フォーマットされたクエリ文字列。
  • normalized_query_hash (UInt64) — リテラルの値が異なるだけのクエリに対して同一になる数値ハッシュ値。
  • query_kind (LowCardinality(String)) — クエリのタイプ。
  • databases (Array(LowCardinality(String))) — クエリに存在するデータベースの名前。
  • tables (Array(LowCardinality(String))) — クエリに存在するテーブルの名前。
  • columns (Array(LowCardinality(String))) — クエリに存在するカラムの名前。
  • partitions (Array(LowCardinality(String))) — クエリに存在するパーティションの名前。
  • projections (String) — クエリ実行中に使用されたプロジェクションの名前。
  • views (Array(LowCardinality(String))) — クエリに存在する(マテリアライズまたはライブ)ビューの名前。
  • exception_code (Int32) — 例外のコード。
  • exception (String) — 例外メッセージ。
  • stack_trace (String) — スタックトレース。クエリが正常に完了した場合は空文字列。
  • is_initial_query (UInt8) — クエリのタイプ。可能な値:
    • 1 — クエリはクライアントによって開始されました。
    • 0 — クエリは他のクエリによって分散クエリ実行の一部として開始されました。
  • user (String) — 現在のクエリを開始したユーザーの名前。
  • query_id (String) — クエリのID。
  • address (IPv6) — クエリ実行に使用されたIPアドレス。
  • port (UInt16) — クエリ実行に使用されたクライアントポート。
  • initial_user (String) — 初期クエリを実行したユーザーの名前(分散クエリ実行用)。
  • initial_query_id (String) — 初期クエリのID(分散クエリ実行用)。
  • initial_address (IPv6) — 親クエリが起動されたIPアドレス。
  • initial_port (UInt16) — 親クエリを実行するために使用されたクライアントポート。
  • initial_query_start_time (DateTime) — 初期クエリの開始時刻(分散クエリ実行用)。
  • initial_query_start_time_microseconds (DateTime64) — マイクロ秒精度での初期クエリの開始時刻(分散クエリ実行用)。
  • interface (UInt8) — クエリが開始されたインターフェース。可能な値:
    • 1 — TCP。
    • 2 — HTTP。
  • os_user (String) — clickhouse-client を実行しているオペレーティングシステムのユーザー名。
  • client_hostname (String) — clickhouse-client または他のTCPクライアントが実行されているクライアントマシンのホスト名。
  • client_name (String) — clickhouse-client または他のTCPクライアントの名前。
  • client_revision (UInt32) — clickhouse-client または他のTCPクライアントのリビジョン。
  • client_version_major (UInt32) — clickhouse-client または他のTCPクライアントのメジャーバージョン。
  • client_version_minor (UInt32) — clickhouse-client または他のTCPクライアントのマイナーバージョン。
  • client_version_patch (UInt32) — clickhouse-client または他のTCPクライアントバージョンのパッチコンポーネント。
  • script_query_number (UInt32) — clickhouse-client の複数クエリを含むスクリプト内でのクエリ番号。
  • script_line_number (UInt32) — clickhouse-client の複数クエリを含むスクリプト内でのクエリ開始の行番号。
  • http_method (UInt8) — クエリを開始したHTTPメソッド。可能な値:
    • 0 — TCPインターフェースからクエリが起動されました。
    • 1 — GET メソッドが使用されました。
    • 2 — POST メソッドが使用されました。
  • http_user_agent (String) — HTTPクエリで渡されたHTTPヘッダー UserAgent
  • http_referer (String) — HTTPクエリで渡されたHTTPヘッダー Referer(クエリを行っているページの絶対または部分的なアドレスを含みます)。
  • forwarded_for (String) — HTTPクエリで渡されたHTTPヘッダー X-Forwarded-For
  • quota_key (String) — quotas 設定で指定された quota keykeyed を参照)。
  • revision (UInt32) — ClickHouse リビジョン。
  • ProfileEvents (Map(String, UInt64)) — 様々なメトリクスを測定する ProfileEvents。これらの説明は system.events テーブルにあります。
  • Settings (Map(String, String)) — クライアントがクエリを実行した際に変更された設定。設定変更のロギングを有効にするには、log_query_settings パラメータを1に設定してください。
  • log_comment (String) — ログコメント。これは、max_query_size を超えない任意の文字列に設定できます。定義されていない場合は空文字列です。
  • thread_ids (Array(UInt64)) — クエリ実行に参加しているスレッドID。これらのスレッドは同時に実行されていない場合があります。
  • peak_threads_usage (UInt64) — クエリを実行している最大同時スレッド数。
  • used_aggregate_functions (Array(String)) — クエリ実行中に使用された aggregate functions の標準名。
  • used_aggregate_function_combinators (Array(String)) — クエリ実行中に使用された aggregate functions combinators の標準名。
  • used_database_engines (Array(String)) — クエリ実行中に使用された database engines の標準名。
  • used_data_type_families (Array(String)) — クエリ実行中に使用された data type families の標準名。
  • used_dictionaries (Array(String)) — クエリ実行中に使用された dictionaries の標準名。XMLファイルを使用して構成された辞書の場合、辞書の名前であり、SQLステートメントによって作成された辞書の場合、標準名は完全修飾オブジェクト名です。
  • used_formats (Array(String)) — クエリ実行中に使用された formats の標準名。
  • used_functions (Array(String)) — クエリ実行中に使用された functions の標準名。
  • used_storages (Array(String)) — クエリ実行中に使用された storages の標準名。
  • used_table_functions (Array(String)) — クエリ実行中に使用された table functions の標準名。
  • used_privileges (Array(String)) - クエリ実行中に正常にチェックされた権限。
  • missing_privileges (Array(String)) - クエリ実行中に欠落している権限。
  • query_cache_usage (Enum8) — クエリ実行中の query cache の使用状況。値:
    • 'Unknown' = 状態不明。
    • 'None' = クエリ結果はクエリキャッシュに書き込まれておらず、読み込まれていない。
    • 'Write' = クエリ結果はクエリキャッシュに書き込まれました。
    • 'Read' = クエリ結果はクエリキャッシュから読み込まれました。

関連情報

  • system.query_thread_log — このテーブルには各クエリ実行スレッドに関する情報が含まれています。