123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510 |
- <?xml version="1.0"?>
- <!--
- NOTE: User and query level settings are set up in "users.xml" file.
- -->
- <yandex>
- <!-- The list of hosts allowed to use in URL-related storage engines and table functions.
- If this section is not present in configuration, all hosts are allowed.
- -->
- <remote_url_allow_hosts>
- <!-- Host should be specified exactly as in URL. The name is checked before DNS resolution.
- Example: "yandex.ru", "yandex.ru." and "www.yandex.ru" are different hosts.
- If port is explicitly specified in URL, the host:port is checked as a whole.
- If host specified here without port, any port with this host allowed.
- "yandex.ru" -> "yandex.ru:443", "yandex.ru:80" etc. is allowed, but "yandex.ru:80" -> only "yandex.ru:80" is allowed.
- If the host is specified as IP address, it is checked as specified in URL. Example: "[2a02:6b8:a::a]".
- If there are redirects and support for redirects is enabled, every redirect (the Location field) is checked.
- -->
- <!-- Regular expression can be specified. RE2 engine is used for regexps.
- Regexps are not aligned: don't forget to add ^ and $. Also don't forget to escape dot (.) metacharacter
- (forgetting to do so is a common source of error).
- -->
- </remote_url_allow_hosts>
- <logger>
- <!-- Possible levels: https://github.com/pocoproject/poco/blob/develop/Foundation/include/Poco/Logger.h#L105 -->
- <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>
- <!-- <console>1</console> --> <!-- Default behavior is autodetection (log to console if not daemon mode and is tty) -->
- </logger>
- <!--display_name>production</display_name--> <!-- It is the name that will be shown in the client -->
- <http_port>8123</http_port>
- <tcp_port>9000</tcp_port>
- <!-- For HTTPS and SSL over native protocol. -->
- <!--
- <https_port>8443</https_port>
- <tcp_port_secure>9440</tcp_port_secure>
- -->
- <!-- Used with https_port and tcp_port_secure. Full ssl options list: https://github.com/ClickHouse-Extras/poco/blob/master/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h#L71 -->
- <openSSL>
- <server> <!-- Used for https server AND secure tcp port -->
- <!-- 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> <!-- Used for connecting to https dictionary source -->
- <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>
- <!-- Default root page on http[s] server. For example load UI from https://tabix.io/ when opening http://localhost:8123 -->
- <!--
- <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>
- -->
- <!-- Port for communication between replicas. Used for data exchange. -->
- <interserver_http_port>9009</interserver_http_port>
- <!-- Hostname that is used by other replicas to request this server.
- If not specified, than it is determined analoguous to 'hostname -f' command.
- This setting could be used to switch replication to another network interface.
- -->
- <!--
- <interserver_http_host>example.yandex.ru</interserver_http_host>
- -->
- <!-- Listen specified host. use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere. -->
- <!-- <listen_host>::</listen_host> -->
- <!-- Same for hosts with disabled ipv6: -->
- <!-- <listen_host>0.0.0.0</listen_host> -->
- <!-- Default values - try listen localhost on ipv4 and ipv6: -->
- <!--
- <listen_host>::1</listen_host>
- <listen_host>127.0.0.1</listen_host>
- -->
- <!-- Don't exit if ipv6 or ipv4 unavailable, but listen_host with this protocol specified -->
- <!-- <listen_try>0</listen_try> -->
- <!-- Allow listen on same address:port -->
- <!-- <listen_reuse_port>0</listen_reuse_port> -->
- <!-- <listen_backlog>64</listen_backlog> -->
- <max_connections>4096</max_connections>
- <keep_alive_timeout>3</keep_alive_timeout>
- <!-- Maximum number of concurrent queries. -->
- <max_concurrent_queries>100</max_concurrent_queries>
- <!-- Set limit on number of open files (default: maximum). This setting makes sense on Mac OS X because getrlimit() fails to retrieve
- correct maximum value. -->
- <!-- <max_open_files>262144</max_open_files> -->
- <!-- Size of cache of uncompressed blocks of data, used in tables of MergeTree family.
- In bytes. Cache is single for server. Memory is allocated only on demand.
- Cache is used when 'use_uncompressed_cache' user setting turned on (off by default).
- Uncompressed cache is advantageous only for very short queries and in rare cases.
- -->
- <uncompressed_cache_size>8589934592</uncompressed_cache_size>
- <!-- Approximate size of mark cache, used in tables of MergeTree family.
- In bytes. Cache is single for server. Memory is allocated only on demand.
- You should not lower this value.
- -->
- <mark_cache_size>5368709120</mark_cache_size>
- <!-- Path to data directory, with trailing slash. -->
- <path>/var/lib/clickhouse/</path>
- <!-- Path to temporary data for processing hard queries. -->
- <tmp_path>/var/lib/clickhouse/tmp/</tmp_path>
- <!-- Directory with user provided files that are accessible by 'file' table function. -->
- <user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
- <!-- Path to configuration file with users, access rights, profiles of settings, quotas. -->
- <users_config>users.xml</users_config>
- <!-- Default profile of settings. -->
- <default_profile>default</default_profile>
- <!-- System profile of settings. This settings are used by internal processes (Buffer storage, Distibuted DDL worker and so on). -->
- <!-- <system_profile>default</system_profile> -->
- <!-- Default database. -->
- <default_database>default</default_database>
- <!-- Server time zone could be set here.
- Time zone is used when converting between String and DateTime types,
- when printing DateTime in text formats and parsing DateTime from text,
- it is used in date and time related functions, if specific time zone was not passed as an argument.
- Time zone is specified as identifier from IANA time zone database, like UTC or Africa/Abidjan.
- If not specified, system time zone at server startup is used.
- Please note, that server could display time zone alias instead of specified name.
- Example: W-SU is an alias for Europe/Moscow and Zulu is an alias for UTC.
- -->
- <!-- <timezone>Europe/Moscow</timezone> -->
- <!-- You can specify umask here (see "man umask"). Server will apply it on startup.
- Number is always parsed as octal. Default umask is 027 (other users cannot read logs, data files, etc; group can only read).
- -->
- <!-- <umask>022</umask> -->
- <!-- Perform mlockall after startup to lower first queries latency
- and to prevent clickhouse executable from being paged out under high IO load.
- Enabling this option is recommended but will lead to increased startup time for up to a few seconds.
- -->
- <mlock_executable>false</mlock_executable>
- <!-- Configuration of clusters that could be used in Distributed tables.
- https://clickhouse.yandex/docs/en/table_engines/distributed/
- -->
- <remote_servers incl="clickhouse_remote_servers" >
- <!-- Test only shard config for testing distributed storage -->
- <test_shard_localhost>
- <shard>
- <replica>
- <host>localhost</host>
- <port>9000</port>
- </replica>
- </shard>
- </test_shard_localhost>
- <test_cluster_two_shards_localhost>
- <shard>
- <replica>
- <host>localhost</host>
- <port>9000</port>
- </replica>
- </shard>
- <shard>
- <replica>
- <host>localhost</host>
- <port>9000</port>
- </replica>
- </shard>
- </test_cluster_two_shards_localhost>
- <test_cluster_two_shards>
- <shard>
- <replica>
- <host>127.0.0.1</host>
- <port>9000</port>
- </replica>
- </shard>
- <shard>
- <replica>
- <host>127.0.0.2</host>
- <port>9000</port>
- </replica>
- </shard>
- </test_cluster_two_shards>
- <test_shard_localhost_secure>
- <shard>
- <replica>
- <host>localhost</host>
- <port>9440</port>
- <secure>1</secure>
- </replica>
- </shard>
- </test_shard_localhost_secure>
- <test_unavailable_shard>
- <shard>
- <replica>
- <host>localhost</host>
- <port>9000</port>
- </replica>
- </shard>
- <shard>
- <replica>
- <host>localhost</host>
- <port>1</port>
- </replica>
- </shard>
- </test_unavailable_shard>
- </remote_servers>
- <!-- If element has 'incl' attribute, then for it's value will be used corresponding substitution from another file.
- By default, path to file with substitutions is /etc/metrika.xml. It could be changed in config in 'include_from' element.
- Values for substitutions are specified in /yandex/name_of_substitution elements in that file.
- -->
- <!-- ZooKeeper is used to store metadata about replicas, when using Replicated tables.
- Optional. If you don't use replicated tables, you could omit that.
- See https://clickhouse.yandex/docs/en/table_engines/replication/
- -->
- <zookeeper incl="zookeeper-servers" optional="true" />
- <!-- Substitutions for parameters of replicated tables.
- Optional. If you don't use replicated tables, you could omit that.
- See https://clickhouse.yandex/docs/en/table_engines/replication/#creating-replicated-tables
- -->
- <macros incl="macros" optional="true" />
- <!-- Reloading interval for embedded dictionaries, in seconds. Default: 3600. -->
- <builtin_dictionaries_reload_interval>3600</builtin_dictionaries_reload_interval>
- <!-- Maximum session timeout, in seconds. Default: 3600. -->
- <max_session_timeout>3600</max_session_timeout>
- <!-- Default session timeout, in seconds. Default: 60. -->
- <default_session_timeout>60</default_session_timeout>
- <!-- Sending data to Graphite for monitoring. Several sections can be defined. -->
- <!--
- interval - send every X second
- root_path - prefix for keys
- hostname_in_path - append hostname to root_path (default = true)
- metrics - send data from table system.metrics
- events - send data from table system.events
- asynchronous_metrics - send data from table system.asynchronous_metrics
- -->
- <!--
- <graphite>
- <host>localhost</host>
- <port>42000</port>
- <timeout>0.1</timeout>
- <interval>60</interval>
- <root_path>one_min</root_path>
- <hostname_in_path>true</hostname_in_path>
- <metrics>true</metrics>
- <events>true</events>
- <events_cumulative>false</events_cumulative>
- <asynchronous_metrics>true</asynchronous_metrics>
- </graphite>
- <graphite>
- <host>localhost</host>
- <port>42000</port>
- <timeout>0.1</timeout>
- <interval>1</interval>
- <root_path>one_sec</root_path>
- <metrics>true</metrics>
- <events>true</events>
- <events_cumulative>false</events_cumulative>
- <asynchronous_metrics>false</asynchronous_metrics>
- </graphite>
- -->
- <!-- Serve endpoint fot Prometheus monitoring. -->
- <!--
- endpoint - mertics path (relative to root, statring with "/")
- port - port to setup server. If not defined or 0 than http_port used
- metrics - send data from table system.metrics
- events - send data from table system.events
- asynchronous_metrics - send data from table system.asynchronous_metrics
- -->
- <!--
- <prometheus>
- <endpoint>/metrics</endpoint>
- <port>9363</port>
- <metrics>true</metrics>
- <events>true</events>
- <asynchronous_metrics>true</asynchronous_metrics>
- </prometheus>
- -->
- <!-- Query log. Used only for queries with setting log_queries = 1. -->
- <query_log>
- <!-- What table to insert data. If table is not exist, it will be created.
- When query log structure is changed after system update,
- then old table will be renamed and new table will be created automatically.
- -->
- <database>system</database>
- <table>query_log</table>
- <!--
- PARTITION BY expr https://clickhouse.yandex/docs/en/table_engines/custom_partitioning_key/
- Example:
- event_date
- toMonday(event_date)
- toYYYYMM(event_date)
- toStartOfHour(event_time)
- -->
- <partition_by>toYYYYMM(event_date)</partition_by>
- <!-- Interval of flushing data. -->
- <flush_interval_milliseconds>7500</flush_interval_milliseconds>
- </query_log>
- <!-- Trace log. Stores stack traces collected by query profilers.
- See query_profiler_real_time_period_ns and query_profiler_cpu_time_period_ns settings. -->
- <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 thread log. Has information about all threads participated in query execution.
- Used only for queries with setting log_query_threads = 1. -->
- <query_thread_log>
- <database>system</database>
- <table>query_thread_log</table>
- <partition_by>toYYYYMM(event_date)</partition_by>
- <flush_interval_milliseconds>7500</flush_interval_milliseconds>
- </query_thread_log>
- <!-- Uncomment if use part log.
- Part log contains information about all actions with parts in MergeTree tables (creation, deletion, merges, downloads).
- <part_log>
- <database>system</database>
- <table>part_log</table>
- <flush_interval_milliseconds>7500</flush_interval_milliseconds>
- </part_log>
- -->
- <!-- Uncomment to write text log into table.
- Text log contains all information from usual server log but stores it in structured and efficient way.
- <text_log>
- <database>system</database>
- <table>text_log</table>
- <flush_interval_milliseconds>7500</flush_interval_milliseconds>
- </text_log>
- -->
- <!-- Uncomment to write metric log into table.
- Metric log contains rows with current values of ProfileEvents, CurrentMetrics collected with "collect_interval_milliseconds" interval.
- <metric_log>
- <database>system</database>
- <table>metric_log</table>
- <flush_interval_milliseconds>7500</flush_interval_milliseconds>
- <collect_interval_milliseconds>1000</collect_interval_milliseconds>
- </metric_log>
- -->
- <!-- Parameters for embedded dictionaries, used in Yandex.Metrica.
- See https://clickhouse.yandex/docs/en/dicts/internal_dicts/
- -->
- <!-- Path to file with region hierarchy. -->
- <!-- <path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file> -->
- <!-- Path to directory with files containing names of regions -->
- <!-- <path_to_regions_names_files>/opt/geo/</path_to_regions_names_files> -->
- <!-- Configuration of external dictionaries. See:
- https://clickhouse.yandex/docs/en/dicts/external_dicts/
- -->
- <dictionaries_config>*_dictionary.xml</dictionaries_config>
- <!-- Uncomment if you want data to be compressed 30-100% better.
- Don't do that if you just started using ClickHouse.
- -->
- <compression incl="clickhouse_compression">
- <!--
- <!- - Set of variants. Checked in order. Last matching case wins. If nothing matches, lz4 will be used. - ->
- <case>
- <!- - Conditions. All must be satisfied. Some conditions may be omitted. - ->
- <min_part_size>10000000000</min_part_size> <!- - Min part size in bytes. - ->
- <min_part_size_ratio>0.01</min_part_size_ratio> <!- - Min size of part relative to whole table size. - ->
- <!- - What compression method to use. - ->
- <method>zstd</method>
- </case>
- -->
- </compression>
- <!-- Allow to execute distributed DDL queries (CREATE, DROP, ALTER, RENAME) on cluster.
- Works only if ZooKeeper is enabled. Comment it if such functionality isn't required. -->
- <distributed_ddl>
- <!-- Path in ZooKeeper to queue with DDL queries -->
- <path>/clickhouse/task_queue/ddl</path>
- <!-- Settings from this profile will be used to execute DDL queries -->
- <!-- <profile>default</profile> -->
- </distributed_ddl>
- <!-- Settings to fine tune MergeTree tables. See documentation in source code, in MergeTreeSettings.h -->
- <!--
- <merge_tree>
- <max_suspicious_broken_parts>5</max_suspicious_broken_parts>
- </merge_tree>
- -->
- <!-- Protection from accidental DROP.
- If size of a MergeTree table is greater than max_table_size_to_drop (in bytes) than table could not be dropped with any DROP query.
- If you want do delete one table and don't want to change clickhouse-server config, you could create special file <clickhouse-path>/flags/force_drop_table and make DROP once.
- By default max_table_size_to_drop is 50GB; max_table_size_to_drop=0 allows to DROP any tables.
- The same for max_partition_size_to_drop.
- Uncomment to disable protection.
- -->
- <!-- <max_table_size_to_drop>0</max_table_size_to_drop> -->
- <!-- <max_partition_size_to_drop>0</max_partition_size_to_drop> -->
- <!-- Example of parameters for GraphiteMergeTree table engine -->
- <graphite_rollup_example>
- <pattern>
- <regexp>click_cost</regexp>
- <function>any</function>
- <retention>
- <age>0</age>
- <precision>3600</precision>
- </retention>
- <retention>
- <age>86400</age>
- <precision>60</precision>
- </retention>
- </pattern>
- <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>
- <!-- Directory in <clickhouse-path> containing schema files for various input formats.
- The directory will be created if it doesn't exist.
- -->
- <format_schema_path>/var/lib/clickhouse/format_schemas/</format_schema_path>
- <!-- Uncomment to use query masking rules.
- name - name for the rule (optional)
- regexp - RE2 compatible regular expression (mandatory)
- replace - substitution string for sensitive data (optional, by default - six asterisks)
- <query_masking_rules>
- <rule>
- <name>hide SSN</name>
- <regexp>\b\d{3}-\d{2}-\d{4}\b</regexp>
- <replace>000-00-0000</replace>
- </rule>
- </query_masking_rules>
- -->
- <!-- Uncomment to disable ClickHouse internal DNS caching. -->
- <!-- <disable_internal_dns_cache>1</disable_internal_dns_cache> -->
- </yandex>
|