ClickHouse/docs/ja/operations/server-configuration-parameters/settings.md
Yatsishin Ilya 111902a018 Merge #10600
2020-05-15 16:14:39 +03:00

34 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true 72537a2d52 57 サーバー設定

サーバー設定

builtin_dictionaries_reload_interval

組み込み辞書を再ロードするまでの秒単位の間隔。

ClickHouseはx秒ごとに組み込みの辞書を再読み込みします。 これにより、辞書の編集が可能になります “on the fly” サーバーを再起動せずに。

デフォルト値は3600です。

<builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>

圧縮

データ圧縮の設定 メルゲツリー-エンジンテーブル。

!!! warning "警告" ClickHouseの使用を開始したばかりの場合は、使用しないでください。

構成テンプレート:

<compression>
    <case>
      <min_part_size>...</min_part_size>
      <min_part_size_ratio>...</min_part_size_ratio>
      <method>...</method>
    </case>
    ...
</compression>

<case> フィールド:

  • min_part_size The minimum size of a data part.
  • min_part_size_ratio The ratio of the data part size to the table size.
  • method Compression method. Acceptable values: lz4 または zstd.

複数の設定が可能です <case> セクション

条件を満たした場合のアクション:

  • データ部分が条件セットに一致する場合、ClickHouseは指定された圧縮方法を使用します。
  • データパーツが複数の条件セットに一致する場合、ClickHouseは最初に一致した条件セットを使用します。

データパーツの条件が満たされていない場合、ClickHouseは lz4 圧縮。

<compression incl="clickhouse_compression">
    <case>
        <min_part_size>10000000000</min_part_size>
        <min_part_size_ratio>0.01</min_part_size_ratio>
        <method>zstd</method>
    </case>
</compression>

default_database

既定のデータベース。

データベースのリストを取得するには、 SHOW DATABASES クエリ。

<default_database>default</default_database>

default_profile

既定の設定プロファイル。

設定プロファイル内のファイルで指定されたパラメータ user_config.

<default_profile>default</default_profile>

dictionaries_config

外部辞書の設定ファイルへのパス。

パス:

  • 絶対パスまたはサーバー設定ファイルに対する相対パスを指定します。
  • のパスを含むことができワイルドカード*や?.

も参照。 “外部辞書”.

<dictionaries_config>*_dictionary.xml</dictionaries_config>

dictionaries_lazy_load

辞書の遅延読み込み。

もし true その後、各辞書は、最初の使用時に作成されます。 辞書の作成に失敗した場合、辞書を使用していた関数は例外をスローします。

もし false すべての辞書は、サーバーの起動時に作成され、エラーがある場合は、サーバーがシャットダウンされます。

既定値は次のとおりです true.

<dictionaries_lazy_load>true</dictionaries_lazy_load>

format_schema_path

入力データのスキーマを含むディレクトリへのパス。 CapnProto 形式。

  <!-- Directory containing schema files for various input formats. -->
  <format_schema_path>format_schemas/</format_schema_path>

黒鉛

データの送信先 黒鉛.

設定:

  • host The Graphite server.
  • port The port on the Graphite server.
  • interval The interval for sending, in seconds.
  • timeout The timeout for sending data, in seconds.
  • root_path Prefix for keys.
  • metrics Sending data from the システムメトリック テーブル。
  • events Sending deltas data accumulated for the time period from the システムイベント テーブル。
  • events_cumulative Sending cumulative data from the システムイベント テーブル。
  • asynchronous_metrics Sending data from the システムasynchronous_metrics テーブル。

複数の設定が可能です <graphite> 句。 たとえば、異なる間隔で異なるデータを送信するためにこれを使用できます。

<graphite>
    <host>localhost</host>
    <port>42000</port>
    <timeout>0.1</timeout>
    <interval>60</interval>
    <root_path>one_min</root_path>
    <metrics>true</metrics>
    <events>true</events>
    <events_cumulative>false</events_cumulative>
    <asynchronous_metrics>true</asynchronous_metrics>
</graphite>

graphite_rollup

グラファイトのデータを薄くする設定。

詳細は、を参照してください GraphiteMergeTree.

<graphite_rollup_example>
    <default>
        <function>max</function>
        <retention>
            <age>0</age>
            <precision>60</precision>
        </retention>
        <retention>
            <age>3600</age>
            <precision>300</precision>
        </retention>
        <retention>
            <age>86400</age>
            <precision>3600</precision>
        </retention>
    </default>
</graphite_rollup_example>

http_port/https_port

HTTP経由でサーバーに接続するためのポート。

もし https_port 指定される, openSSL 設定する必要があります。

もし http_port が指定されている場合、OpenSSL設定が設定されていても無視されます。

<https_port>9999</https_port>

http_server_default_response

ClickHouse HTTP(s)サーバーにアクセスするときにデフォルトで表示されるページ。 既定値は次のとおりです “Ok.” (最後に改行があります)

開く https://tabix.io/ アクセス時 http://localhost: http_port.

<http_server_default_response>
  <![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]>
</http_server_default_response>

include_from

置換されたファイルへのパス。

詳細については “設定ファイル”.

<include_from>/etc/metrica.xml</include_from>

interserver_http_port

ClickHouseサーバー間でデータを交換するポート。

<interserver_http_port>9009</interserver_http_port>

interserver_http_host

このサーバーへのアクセスに他のサーバーが使用できるホスト名。

省略された場合、これは hostname-f コマンド

特定のネッ

<interserver_http_host>example.yandex.ru</interserver_http_host>

interserver_http_credentials

認証時に使用されるユーザー名とパスワード 複製 複製された*エンジンで。 これらの資格情報は、レプリカ間の通信にのみ使用され、ClickHouseクライアントの資格情報とは無関係です。 サーバーにあるチェックにこれらの資格の接続にはレプリカと同じ資格を接続する場合はその他のレプリカ. なので、これらの資格を設定する同じすべてのレプリカ、クラスター 既定では、認証は使用されません。

このセクションでは以下のパラメータ:

  • user — username.
  • password — password.

<interserver_http_credentials>
    <user>admin</user>
    <password>222</password>
</interserver_http_credentials>

keep_alive_timeout

ClickHouseが接続を閉じる前に受信要求を待機する秒数。 既定値は3秒です。

<keep_alive_timeout>3</keep_alive_timeout>

listen_host

要求元のホストに対する制限。 したい場合はサーバーの回答をしているが、それらを指定し ::.

例:

<listen_host>::1</listen_host>
<listen_host>127.0.0.1</listen_host>

ロガー

ログ設定。

キー:

  • level Logging level. Acceptable values: trace, debug, information, warning, error.
  • log The log file. Contains all the entries according to level.
  • errorlog Error log file.
  • size Size of the file. Applies to logerrorlog. ファイルが到達すると size、ClickHouseはアーカイブし、それの名前を変更し、その場所に新しいログファイルを作成します。
  • count The number of archived log files that ClickHouse stores.

<logger>
    <level>trace</level>
    <log>/var/log/clickhouse-server/clickhouse-server.log</log>
    <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
    <size>1000M</size>
    <count>10</count>
</logger>

Syslogへの書き込みもサポートされています。 設定の例:

<logger>
    <use_syslog>1</use_syslog>
    <syslog>
        <address>syslog.remote:10514</address>
        <hostname>myhost.local</hostname>
        <facility>LOG_LOCAL6</facility>
        <format>syslog</format>
    </syslog>
</logger>

キー:

  • use_syslog — Required setting if you want to write to the syslog.
  • address — The host[:port] of syslogd. If omitted, the local daemon is used.
  • hostname — Optional. The name of the host that logs are sent from.
  • facility — Syslog機能キーワード 大文字では “LOG_” 接頭辞: (LOG_USER, LOG_DAEMON, LOG_LOCAL3、というように)。 デフォルト値: LOG_USER もし address 指定される, LOG_DAEMON otherwise.
  • format Message format. Possible values: bsdsyslog.

マクロ

複製されたテーブルのパラメーター置換。

ければ省略することができ複製のテーブルは使用しておりません。

詳細については “複製テーブルの作成”.

<macros incl="macros" optional="true" />

mark_cache_size

テーブルエンジンが使用するマークのキャッシュのおおよそのサイズ(バイト単位) メルゲツリー 家族だ

キャッシュの共有のサーバーメモリが割り当てられます。 キャッシュサイズは、少なくとも5368709120である必要があります。

<mark_cache_size>5368709120</mark_cache_size>

max_concurrent_queries

同時に処理される要求の最大数。

<max_concurrent_queries>100</max_concurrent_queries>

max_connections

受信接続の最大数。

<max_connections>4096</max_connections>

max_open_files

開いているファイルの最大数。

既定では: maximum.

このオプションをMac OS Xで使用することをお勧めします。 getrlimit() 関数は、誤った値を返します。

<max_open_files>262144</max_open_files>

max_table_size_to_drop

テーブルの削除に関する制限。

のサイズが メルゲツリー テーブル超過 max_table_size_to_drop (バイト単位)、ドロップクエリを使用して削除することはできません。

ClickHouseサーバーを再起動せずにテーブルを削除する必要がある場合は、 <clickhouse-path>/flags/force_drop_table DROPクエリをファイルして実行します。

デフォルト値:50GB。

値0は、制限なしですべてのテーブルを削除できることを意味します。

<max_table_size_to_drop>0</max_table_size_to_drop>

merge_tree

テーブルの微調整 メルゲツリー.

詳細については、MergeTreeSettingsを参照してください。hヘッダファイル。

<merge_tree>
    <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
</merge_tree>

openSSL

SSLクライアント/サーバー構成。

SSLのサポートは以下によって提供されます libpoco 図書館 ユーザーインターフェイスはファイルに記述 SSLManager.h

サーバー/クライアント設定のキー:

  • privateKeyFile The path to the file with the secret key of the PEM certificate. The file may contain a key and certificate at the same time.
  • certificateFile The path to the client/server certificate file in PEM format. You can omit it if privateKeyFile 証明書が含まれています。
  • caConfig The path to the file or directory that contains trusted root certificates.
  • verificationMode The method for checking the node's certificates. Details are in the description of the 文脈 クラス 可能な値: none, relaxed, strict, once.
  • verificationDepth The maximum length of the verification chain. Verification will fail if the certificate chain length exceeds the set value.
  • loadDefaultCAFile Indicates that built-in CA certificates for OpenSSL will be used. Acceptable values: true, false. |
  • cipherList Supported OpenSSL encryptions. For example: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH.
  • cacheSessions Enables or disables caching sessions. Must be used in combination with sessionIdContext. 許容値: true, false.
  • sessionIdContext A unique set of random characters that the server appends to each generated identifier. The length of the string must not exceed SSL_MAX_SSL_SESSION_ID_LENGTH. このパラメータは常にお勧めです問題を避けることになるだろう両方の場合はサーバのキャッシュのセッションがクライアントの要望はキャッシュ. デフォルト値: ${application.name}.
  • sessionCacheSize The maximum number of sessions that the server caches. Default value: 1024*20. 0 Unlimited sessions.
  • sessionTimeout Time for caching the session on the server.
  • extendedVerification Automatically extended verification of certificates after the session ends. Acceptable values: true, false.
  • requireTLSv1 Require a TLSv1 connection. Acceptable values: true, false.
  • requireTLSv1_1 Require a TLSv1.1 connection. Acceptable values: true, false.
  • requireTLSv1 Require a TLSv1.2 connection. Acceptable values: true, false.
  • fips Activates OpenSSL FIPS mode. Supported if the library's OpenSSL version supports FIPS.
  • privateKeyPassphraseHandler Class (PrivateKeyPassphraseHandler subclass) that requests the passphrase for accessing the private key. For example: <privateKeyPassphraseHandler>, <name>KeyFileHandler</name>, <options><password>test</password></options>, </privateKeyPassphraseHandler>.
  • invalidCertificateHandler Class (a subclass of CertificateHandler) for verifying invalid certificates. For example: <invalidCertificateHandler> <name>ConsoleCertificateHandler</name> </invalidCertificateHandler> .
  • disableProtocols Protocols that are not allowed to use.
  • preferServerCiphers Preferred server ciphers on the client.

設定例:

<openSSL>
    <server>
        <!-- openssl req -subj "/CN=localhost" -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/clickhouse-server/server.key -out /etc/clickhouse-server/server.crt -->
        <certificateFile>/etc/clickhouse-server/server.crt</certificateFile>
        <privateKeyFile>/etc/clickhouse-server/server.key</privateKeyFile>
        <!-- openssl dhparam -out /etc/clickhouse-server/dhparam.pem 4096 -->
        <dhParamsFile>/etc/clickhouse-server/dhparam.pem</dhParamsFile>
        <verificationMode>none</verificationMode>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
    </server>
    <client>
        <loadDefaultCAFile>true</loadDefaultCAFile>
        <cacheSessions>true</cacheSessions>
        <disableProtocols>sslv2,sslv3</disableProtocols>
        <preferServerCiphers>true</preferServerCiphers>
        <!-- Use for self-signed: <verificationMode>none</verificationMode> -->
        <invalidCertificateHandler>
            <!-- Use for self-signed: <name>AcceptCertificateHandler</name> -->
            <name>RejectCertificateHandler</name>
        </invalidCertificateHandler>
    </client>
</openSSL>

part_log

関連付けられたイベントのログ記録 メルゲツリー. たとえば、データの追加やマージなどです。 利用できるログを統合アルゴリズムと比較しています。 マージプロセスを視覚化できます。

クエリは システムpart_log 別のファイルではなく、テーブル。 このテーブルの名前は、 table パラメータ(下記参照)。

以下のパラメータの設定ロギング:

  • database Name of the database.
  • table Name of the system table.
  • partition_by Sets a カスタム分割キー.
  • flush_interval_milliseconds Interval for flushing data from the buffer in memory to the table.

<part_log>
    <database>system</database>
    <table>part_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</part_log>

パス

データを含むディレクトリへのパス。

!!! note "注" 末尾のスラッシュは必須です。

<path>/var/lib/clickhouse/</path>

プロメテウス

スクレイピングの指標データの公開 プロメテウス.

設定:

  • endpoint HTTP endpoint for scraping metrics by prometheus server. Start from /.
  • port Port for endpoint.
  • metrics Flag that sets to expose metrics from the システムメトリック テーブル。
  • events Flag that sets to expose metrics from the システムイベント テーブル。
  • asynchronous_metrics Flag that sets to expose current metrics values from the システムasynchronous_metrics テーブル。

 <prometheus>
        <endpoint>/metrics</endpoint>
        <port>8001</port>
        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
    </prometheus>

query_log

クエリをログに記録するための設定 log_queries=1 設定。

クエリは システムquery_log 別のファイルではなく、テーブル。 テーブルの名前を変更することができます。 table パラメータ(下記参照)。

以下のパラメータの設定ロギング:

  • database Name of the database.
  • table Name of the system table the queries will be logged in.
  • partition_by Sets a カスタム分割キー テーブルのために。
  • flush_interval_milliseconds Interval for flushing data from the buffer in memory to the table.

テーブルが存在しない場合、ClickHouseはそれを作成します。 ClickHouseサーバーが更新されたときにクエリログの構造が変更された場合、古い構造のテーブルの名前が変更され、新しいテーブルが自動的に作成されます。

<query_log>
    <database>system</database>
    <table>query_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_log>

query_thread_log

クエリのスレッドをログに記録するための設定 log_query_threads=1 設定。

クエリは システムquery_thread_log 別のファイルではなく、テーブル。 テーブルの名前を変更することができます。 table パラメータ(下記参照)。

以下のパラメータの設定ロギング:

  • database Name of the database.
  • table Name of the system table the queries will be logged in.
  • partition_by Sets a カスタム分割キー システムテーブルの場合。
  • flush_interval_milliseconds Interval for flushing data from the buffer in memory to the table.

テーブルが存在しない場合、ClickHouseはそれを作成します。 ClickHouseサーバーの更新時にクエリスレッドログの構造が変更された場合、古い構造のテーブルの名前が変更され、新しいテーブルが自動的に作成されます。

<query_thread_log>
    <database>system</database>
    <table>query_thread_log</table>
    <partition_by>toMonday(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</query_thread_log>

trace_log

の設定 trace_log システムテーブル操作。

パラメータ:

  • database — Database for storing a table.
  • table — Table name.
  • partition_byカスタム分割キー システムテーブルの場合。
  • flush_interval_milliseconds — Interval for flushing data from the buffer in memory to the table.

既定のサーバー構成ファイル config.xml 次の設定セクションがあります:

<trace_log>
    <database>system</database>
    <table>trace_log</table>
    <partition_by>toYYYYMM(event_date)</partition_by>
    <flush_interval_milliseconds>7500</flush_interval_milliseconds>
</trace_log>

query_masking_rules

サーバーログに格納する前に、すべてのログメッセージだけでなく、クエリにも適用されます, system.query_log, system.text_log, system.processes クライアントに送信されたログ。 これにより SQLクエリからの機密データ漏洩(名前、電子メール、個人など ログへの識別子またはクレジットカード番号)。

<query_masking_rules>
    <rule>
        <name>hide SSN</name>
        <regexp>(^|\D)\d{3}-\d{2}-\d{4}($|\D)</regexp>
        <replace>000-00-0000</replace>
    </rule>
</query_masking_rules>

設定フィールド:

  • name -ルールの名前(オプション)
  • regexp -RE2互換の正規表現必須)
  • replace -機密データの置換文字列(オプション、デフォルトでは-六つのアスタリスク)

マスキングルールは、クエリ全体に適用されます(不正な形式/解析不可能なクエリから機密データが漏れるのを防ぐため)。

system.events テーブルカウンター QueryMaskingRulesMatch して全体のマスキングルール。

分散クエリの場合は、各サーバーを個別に構成する必要があります。 ノードはマスクなしで保存されます。

remote_servers

によって使用されるクラスタの構成 分散 テーブルエンジンと cluster テーブル関数。

<remote_servers incl="clickhouse_remote_servers" />

の値に対して incl 属性は、節を参照してください “設定ファイル”.

も参照。

タイムゾーン

サーバーのタイムゾーン。

UTCタイムゾーンまたは地理的位置(たとえば、Africa/Abidjan)のIANA識別子として指定します。

タイムゾーンは、DateTimeフィールドをテキスト形式(画面またはファイルに出力)に出力するとき、および文字列からDateTimeを取得するときに、文字列とDateTime形式の間 また、タイムゾーンは、入力パラメーターでタイムゾーンを受信しなかった場合、時刻と日付を扱う関数で使用されます。

<timezone>Europe/Moscow</timezone>

tcp_port

TCPプロトコル経由でクライアントと通信するポート。

<tcp_port>9000</tcp_port>

tcp_port_secure

クライアントとの安全な通信用のTCPポート。 それを使用して OpenSSL 設定。

可能な値

正の整数。

デフォルト値

<tcp_port_secure>9440</tcp_port_secure>

mysql_port

MySQLプロトコ

可能な値

正の整数。

<mysql_port>9004</mysql_port>

tmp_path

大規模なクエリを処理するための一時データへのパス。

!!! note "注" 末尾のスラッシュは必須です。

<tmp_path>/var/lib/clickhouse/tmp/</tmp_path>

tmp_policy

ポリシーから storage_configuration 一時ファイルを格納する。 設定されていない場合 tmp_path それ以外の場合は無視されます。

!!! note "注" - move_factor 無視される

  • keep_free_space_bytes 無視される
  • max_data_part_size_bytes 無視される なければならない同一数量の政策

uncompressed_cache_size

テーブルエンジンが使用する非圧縮データのキャッシュサイズ(バイト単位) メルゲツリー.

サーバーの共有キャッシュが一つあります。 メモリが割り当てられます。 キャッシュが使用されるのは use_uncompressed_cache 有効です。

非圧縮キャッシュは、個々のケースで非常に短いクエリで有利です。

<uncompressed_cache_size>8589934592</uncompressed_cache_size>

user_files_path

ユ テーブル関数で使用されます ファイル().

<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>

users_config

以下のファイルへのパス:

  • ユーザー構成。
  • アクセス権。
  • 設定プロファイル。
  • クォータ設定。

<users_config>users.xml</users_config>

飼育係

ClickHouseと対話できるようにする設定が含まれています。 飼育係 クラスター。

ClickHouse用飼育係の保存メタデータのレプリカの使用時に再現します。 場合は複製のテーブルを使用していないので、このパラメータを省略することができます。

このセクションでは以下のパラメータ:

  • node — ZooKeeper endpoint. You can set multiple endpoints.

    例えば:

    <node index="1">
        <host>example_host</host>
        <port>2181</port>
    </node>
  The `index` attribute specifies the node order when trying to connect to the ZooKeeper cluster.
  • session_timeout — Maximum timeout for the client session in milliseconds.
  • root — The znode これはClickHouseサーバーで使用されるznodeのルートとして使用されます。 任意。
  • identity — User and password, that can be required by ZooKeeper to give access to requested znodes. Optional.

設定例

<zookeeper>
    <node>
        <host>example1</host>
        <port>2181</port>
    </node>
    <node>
        <host>example2</host>
        <port>2181</port>
    </node>
    <session_timeout_ms>30000</session_timeout_ms>
    <operation_timeout_ms>10000</operation_timeout_ms>
    <!-- Optional. Chroot suffix. Should exist. -->
    <root>/path/to/zookeeper/node</root>
    <!-- Optional. Zookeeper digest ACL string. -->
    <identity>user:password</identity>
</zookeeper>

も参照。

use_minimalistic_part_header_in_zookeeper

ZooKeeperのデータ部分ヘッダーの格納方法。

この設定は、 MergeTree 家族だ 指定できます:

  • グローバルに merge_tree のセクション config.xml ファイル

    ClickHouseは、サーバー上のすべてのテーブルの設定を使用します。 設定はいつでも変更できます。 既存のテーブルは、設定が変更されると動作を変更します。

  • 各テーブルのため。

    テーブルを作成するときは、対応する エンジン設定. この設定を持つ既存のテーブルの動作は、グローバル設定が変更されても変更されません。

可能な値

  • 0 — Functionality is turned off.
  • 1 — Functionality is turned on.

もし use_minimalistic_part_header_in_zookeeper = 1 その後 複製 テーブルは、単一のデータパーツのヘッダーをコンパクトに格納します znode. テーブルに多数の列が含まれている場合、この格納方法はZookeeperに格納されるデータの量を大幅に削減します。

!!! attention "注意" 申請後 use_minimalistic_part_header_in_zookeeper = 1 ClickHouseサーバーをこの設定をサポートしないバージョンにダウングレードすることはできません。 するとアップグレード時に注意ClickHouseサーバーにクラスター なアップの全てのサーバーです。 ClickHouseの新しいバージョンをテストするには、テスト環境またはクラスターの少数のサーバーでテストする方が安全です。

  Data part headers already stored with this setting can't be restored to their previous (non-compact) representation.

デフォルト値: 0.

disable_internal_dns_cache

内部DNSキャッシュを無効にします。 システムの作動のClickHouseのために推薦される 頻繁に変化するインフラなどのKubernetes.

デフォルト値: 0.

dns_cache_update_period

ClickHouse内部DNSキャッシュに格納されているIPアドレスの更新期間(秒単位)。 更新は、別のシステムスレッドで非同期に実行されます。

デフォルト値: 15.

access_control_path

パフォルダがClickHouseサーバー店舗ユーザーの役割構成で作成したSQLコマンド.

デフォルト値: /var/lib/clickhouse/access/.

も参照。

元の記事