ClickHouse/docs/ja/operations/system-tables/index.md
2024-11-18 11:58:58 +09:00

5.9 KiB
Raw Blame History

slug sidebar_position sidebar_label pagination_next
/ja/operations/system-tables/ 52 概要 en/operations/system-tables/asynchronous_metric_log

システムテーブル

はじめに

システムテーブルは次の情報を提供します:

  • サーバーの状態、プロセス、環境。
  • サーバーの内部プロセス。
  • ClickHouseバイナリがビルドされたときのオプション。

システムテーブル:

  • systemデータベースに配置されています。
  • データの読み取り専用で利用可能です。
  • 削除や変更はできませんが、デタッチすることは可能です。

ほとんどのシステムテーブルはそのデータをRAMに保存します。ClickHouseサーバーは起動時にそのようなシステムテーブルを作成します。

他のシステムテーブルとは異なり、システムログテーブルであるmetric_logquery_logquery_thread_logtrace_logpart_logcrash_logtext_logbackup_logは、MergeTreeテーブルエンジンによって提供され、デフォルトでデータをファイルシステムに保存します。ファイルシステムからテーブルを削除すると、次回のデータ書き込み時にClickHouseサーバーが新しい空のテーブルを再作成します。新しいリリースでシステムテーブルのスキーマが変更された場合、ClickHouseは現在のテーブルの名前を変更し、新しいものを作成します。

システムログテーブルは、/etc/clickhouse-server/config.d/にテーブルと同じ名前の構成ファイルを作成するか、/etc/clickhouse-server/config.xmlに対応する要素を設定することでカスタマイズできます。カスタマイズ可能な要素は次のとおりです:

  • database: システムログテーブルが属するデータベース。このオプションは現在非推奨です。すべてのシステムログテーブルは system データベースにあります。
  • table: データを挿入するテーブル。
  • partition_by: PARTITION BY式を指定します。
  • ttl: テーブルの有効期限 (TTL)式を指定します。
  • flush_interval_milliseconds: ディスクへのデータフラッシュの間隔を設定します。
  • engine: パラメータを含む完全なエンジン式(ENGINE = から始まる)を指定します。このオプションは partition_by および ttl と衝突します。両方が設定されている場合、サーバーは例外を発生させて終了します。

例:

<clickhouse>
    <query_log>
        <database>system</database>
        <table>query_log</table>
        <partition_by>toYYYYMM(event_date)</partition_by>
        <ttl>event_date + INTERVAL 30 DAY DELETE</ttl>
        <!--
        <engine>ENGINE = MergeTree PARTITION BY toYYYYMM(event_date) ORDER BY (event_date, event_time) SETTINGS index_granularity = 1024</engine>
        -->
        <flush_interval_milliseconds>7500</flush_interval_milliseconds>
        <max_size_rows>1048576</max_size_rows>
        <reserved_size_rows>8192</reserved_size_rows>
        <buffer_size_rows_flush_threshold>524288</buffer_size_rows_flush_threshold>
        <flush_on_crash>false</flush_on_crash>
    </query_log>
</clickhouse>

デフォルトでは、テーブルの成長は無制限です。テーブルのサイズを制御するには、古いログレコードを削除するためにTTL設定を使用できます。また、MergeTree エンジンテーブルのパーティショニング機能を使用することもできます。

システムメトリックの情報源

システムメトリックを収集するためにClickHouseサーバーは次を使用します

  • CAP_NET_ADMINの権限。
  • procfsLinuxのみ

procfs

ClickHouseサーバーがCAP_NET_ADMINの権限を持っていない場合、ProcfsMetricsProviderにフォールバックしようとします。ProcfsMetricsProviderは、CPUおよびI/Oのクエリごとのシステムメトリックを収集します。

システムでprocfsがサポートされ、有効化されている場合、ClickHouseサーバーはこれらのメトリックを収集します

  • OSCPUVirtualTimeMicroseconds
  • OSCPUWaitMicroseconds
  • OSIOWaitMicroseconds
  • OSReadChars
  • OSWriteChars
  • OSReadBytes
  • OSWriteBytes

:::note Linuxカーネルの5.14.x以降では、OSIOWaitMicrosecondsはデフォルトで無効です。 sudo sysctl kernel.task_delayacct=1を使用するか、/etc/sysctl.d/内に.confファイルを作成し、kernel.task_delayacct = 1と設定して有効にできます。 :::

関連コンテンツ